T06 · System Persistence
Error
- Location
- SKILL.md:31
- Finding
- Persistent Daily Scheduled Task Performs Unattended Software Updates<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:31-39`; `references/agent-guide.md:77-100` **Vulnerability Type**: Persistent scheduled task **Risk Level**: High ### Vulnerable Code `SKILL.md:31-39`: ```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." ``` `references/agent-guide.md:77-100`: ```bash clawdbot cron add \ --name "Daily Auto-Update" \ --cron "0 4 * * *" \ --tz "America/Los_Angeles" \ --session isolated \ --wake now \ --deliver \ --message "Run the daily auto-update routine: 1. Check and update Clawdbot: - For npm installs: npm update -g clawdbot@latest - For source installs: clawdbot update - Then run: clawdbot doctor --yes 2. Update all skills: - Run: clawdhub update --all 3. Report back with: - Clawdbot version before/after - List of skills that were updated (name + old version → new version) - Any errors encountered Format the summary clearly for the user." ``` ### Technical Analysis The skill directs the agent to install a recurring cron entry that survives the originating session. The job wakes an isolated agent session every day and instructs it to execute software-maintenance commands. This is a cross-session persistence mechanism under the `T06: System Persistence` classification. Although the scheduled behavior is disclosed as the skill's intended purpose, it creates a durable execution channel. Updates are applied without requiring separate user approval for each new release. Consequently, the code executed by future runs can differ from the code that existed when the user enabled the skill. The persistence mechanism is particularly consequential because the scheduled message combines core application updates, migrations, and updates to every installed ski ...[truncated 1469 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Default to a scheduled update check rather than automatic installation. 2. Require explicit user approval before applying each core or skill update. 3. Display the proposed versions, source, integrity information, and relevant release notes before installation. 4. Pin approved versions instead of instructing the scheduler to retrieve mutable latest releases. 5. Run update validation in a restricted staging environment before modifying the active installation. 6. Execute the scheduler under a dedicated least-privileged account with write access only to required update directories. 7. Provide and verify an immediate removal procedure, such as: ```bash clawdbot cron remove "Daily Auto-Update" clawdbot cron list ``` 8. Record the cron job identifier, creation time, owner, and exact commands so users can audit persistent state. 9. Require renewed authorization before materially changing the commands performed by the scheduled job. ]]>
