T06 · System Persistence
Error
- Location
- SKILL.md:87
- Finding
- Persistent OpenClaw Scheduled Tasks<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:87-92`; duplicated in `README.md:131-136` **Vulnerability Type**: Persistent scheduled Agent execution **Risk Level**: High ### Vulnerable Code `SKILL.md:87-92`: ```bash # Daily morning report at 09:00 openclaw cron add "0 9 * * *" "Generate today's morning strategy report" # Post-market analysis at 15:30 on weekdays openclaw cron add "30 15 * * 1-5" "Analyze today's market performance and tomorrow's opportunities" ``` The original commands contain Chinese prompt text, but the commands above are faithful English translations of the audited instructions. `README.md:131-136` contains equivalent commands: ```bash # Daily morning report at 09:00 openclaw cron add "0 9 * * *" "Generate today's morning strategy report" # Post-market analysis at 15:30 on weekdays openclaw cron add "30 15 * * 1-5" "Analyze today's market performance" ``` ### Technical Analysis The documentation instructs users to register recurring OpenClaw jobs. Once a user executes these commands, the jobs survive the current Skill invocation and cause the Agent to process prompts automatically in future sessions. The project does not provide confirmation safeguards, an expiration time, restricted execution context, ownership controls, or instructions for listing and removing the jobs. Although the project does not register these tasks automatically, following its documented setup changes persistent Agent state. Because a scheduled job resolves and invokes Agent behavior at execution time, later changes to the Skill, its dependencies, or the Agent environment may affect what the persisted task does. ### Attack Path 1. A user installs the Skill and follows its scheduling instructions. 2. The user executes the supplied `openclaw cron add` commands. 3. OpenClaw stores two recurring jobs in persistent scheduler state. 4. The scheduler invokes the Agent prompts every morning and after market close. 5. The jobs continue across ses ...[truncated 696 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Remove recurring-task registration from the default or quick-start workflow. 2. Present scheduling as an explicitly optional feature and require informed user confirmation before registration. 3. Display the exact schedule, prompt, execution identity, permissions, and expected resource usage before creating a job. 4. Assign every job a unique name, owner, and expiration time. 5. Run scheduled jobs in a least-privilege environment with restricted filesystem, network, secret, and tool access. 6. Document commands for listing, disabling, and permanently removing all registered jobs. 7. Pin the Skill and dependency versions used by each scheduled task so later updates are not adopted silently. 8. Require renewed approval if the scheduled prompt, Skill version, dependencies, permissions, or accessible secrets change. ]]>
