T06 · System Persistence
Error
- Location
- SKILL.md:25
- Finding
- Persistent Daily Update Task Executes Across Sessions<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:25-34` **Additional Location**: `references/agent-guide.md:76-101` **Vulnerability Type**: Scheduled-task persistence **Risk Level**: Critical ### Vulnerable Code ```bash clawdbot cron add \ --name "Daily Auto-Update" \ --cron "0 4 * * *" \ --tz "America/Los_Angeles" \ --session isolated \ --wake now \ --deliver \ --message "Run daily auto-updates: check for Clawdbot updates and update all skills. Report what was updated." ``` ### Technical Analysis The Skill instructs the agent to register a daily cron task that remains active after the setup session ends. The task wakes an isolated agent session and directs it to update the Clawdbot runtime and all installed Skills. Although the scheduled behavior is disclosed as the Skill's primary feature, it establishes a cross-session execution mechanism. The task performs recurring software modification without requiring approval for each update. Its update message is also expressed as a high-level natural-language instruction rather than as a narrowly constrained, immutable command sequence, leaving implementation decisions to the agent executing the scheduled session. ### Attack Path 1. A user asks the agent to configure the auto-updater. 2. The agent executes the documented `clawdbot cron add` command. 3. A persistent daily task is registered under the Gateway user's account. 4. At the configured time, the task wakes an isolated agent session. 5. The session obtains and installs current Clawdbot and Skill releases. 6. If an upstream package, publisher account, registry entry, or Skill release has been compromised, the persistent task installs the affected update automatically. 7. The newly installed code or Skill instructions can then affect subsequent agent operations with the permissions available to the Gateway or updater user. ### Impact Assessment The scheduled task obtains the ability to run daily across sessions and modify ...[truncated 574 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Default to a notification-only or dry-run workflow: ```bash clawdhub update --all --dry-run ``` 2. Require explicit user approval before applying each core or Skill update. 3. Separate update checking from update installation. A scheduled task may check for releases, but it should not modify software automatically. 4. Display exact package names, current versions, target versions, provenance information, and integrity values before approval. 5. If unattended updates are explicitly enabled, restrict the scheduled task to a narrowly scoped script rather than a general natural-language agent instruction. 6. Run update checks in a sandbox with minimal filesystem and network permissions. 7. Add a documented expiration mechanism or periodic reauthorization requirement for the scheduled task. 8. Provide a setup-time confirmation showing the cron schedule, execution identity, affected directories, and removal command. 9. Record update attempts in tamper-resistant logs and alert the user immediately when an update fails verification. ]]>
