Back to skill

Security audit

Config Rollback

Security checks for vulnerabilities and agentic risk

Overview

The skill is openly designed to protect config edits, but it uses broad privileged rollback commands and scheduled tasks that can overwrite system configuration after the session ends.

Install only if you are comfortable with an agent scheduling host-level rollback commands. Before use, require the agent to show the exact file, backup path, service reload command, scheduled job ID, and cancellation check; avoid using it on SSH, firewall, DNS, or production configs unless you have another recovery path.

Vulnerability Patterns
  • System PersistenceInstalls backdoors, hooks, services, or scheduled tasks that survive the run
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (1)

T06 · System Persistence

Error
Location
SKILL.md:37
Finding
Privileged Cross-Session Rollback Task Creates System Persistence<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, lines 37-60 **Vulnerability Type**: System-level scheduled-task persistence **Risk Level**: High ### Vulnerable Code ```bash # Backup + set 5-min restore timer cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak echo "cp /etc/nginx/nginx.conf.bak /etc/nginx/nginx.conf && systemctl reload nginx" | at now + 5 minutes # Make your changes... vim /etc/nginx/nginx.conf systemctl reload nginx # If everything works, cancel the timer: atrm <job-id> ``` The Skill further specifies: ```text The restore timer is a system-level scheduled task (`at` / `crontab`). It does NOT depend on your shell session, SSH connection, or any application. Even if you brick the service, the timer still fires. ``` ### Technical Analysis The Skill explicitly instructs the Agent to register an `at` job that continues executing after the initiating shell, application, or SSH session ends. The scheduled command later overwrites an active service configuration and reloads the affected service. A delayed rollback is relevant to the declared recovery functionality, but the instructions apply broadly to nginx, SSH, firewall, DNS, proxy, and arbitrary service configurations. They do not require: - Validation or canonicalization of the target path. - An allowlist of permitted files or services. - Confirmation of the exact delayed command before registration. - Verification of the account under which the task will execute. - Reliable capture and storage of the scheduled job ID. - Verification that cancellation succeeded. - Secure backup permissions and cleanup. - Restrictions against substituting a persistent `crontab` entry. The mechanism does not independently obtain elevated privileges; it executes with the permissions of the account that registers the job. However, modifying files under `/etc` and reloading system services will commonly require root or equivalent administrative authority. When invoked with those privileges, ...[truncated 1952 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Require explicit user confirmation before scheduling the task. Display the exact target file, backup path, service name, delayed command, execution account, and expiration time. 2. Restrict operation to an explicit allowlist of configuration paths and service units. Resolve canonical paths and reject symlinks, traversal, shell metacharacters, and unrecognized service names. 3. Use least privilege. Grant only narrowly scoped permission to copy the approved file and reload the corresponding service instead of running the entire workflow as unrestricted root. 4. Use a securely created backup file or directory with restrictive permissions, preserved ownership and mode, collision prevention, and deterministic cleanup. 5. Capture the `at` job ID programmatically, verify that the queued command matches the intended rollback, and return a reliable cancellation command. 6. After cancellation, verify through `atq` that the job no longer exists. Report failure prominently rather than assuming cancellation succeeded. 7. Avoid `crontab` for one-shot rollback. If it must be supported, require a bounded self-removing entry and verify its removal. 8. Validate the backup before restoration and test the configuration syntax before reloading the service. 9. Prefer service-specific rollback facilities or a narrowly scoped transient service with an explicit timeout, audit trail, and cleanup behavior. 10. Warn the user that losing the job ID or failing to cancel the task can revert valid changes and interrupt service. ]]>
Vulnerability Patterns
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (3)

Vague Triggers

Medium
Confidence
90% confidence
Finding
The trigger phrase is overly broad for a skill that performs privileged filesystem changes and schedules a system-level rollback task. In a wide range of config-editing conversations, this could cause the agent to initiate backup, restoration, or service reload actions without sufficiently scoped confirmation about the target file, service, timing, or host.

Natural-Language Policy Violations

Medium
Confidence
92% confidence
Finding
The package description is written entirely in Chinese, which signals a language-specific experience without indicating any user choice or opt-in. The policy requires flagging language or locale constraints when they are imposed without offering an alternative or documenting a justified region-specific scope.

Natural-Language Policy Violations

Low
Confidence
77% confidence
Finding
The title, story, and example invocation prominently use Chinese language content and Chinese trigger wording, with no statement that the user can choose their preferred language. Under the policy for natural-language violations, forcing or assuming a specific language without opt-in can be a locale-policy issue.

Static analysis

No suspicious patterns detected.