T06 · System Persistence
Note
- Location
- SKILL.md:47
- Finding
- Documented Cron Configuration Creates Persistent Scheduled Execution<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:47-50` **Vulnerability Type**: Persistent scheduled task **Risk Level**: Low ### Vulnerable Code ```text Run weekly on Mondays to catch fresh Craigslist posts: ``` openclaw cron add --schedule "0 8 * * MON" --command "python3 ~/StudioBrain/00_SYSTEM/skills/craigslist-monitor/monitor.py --save" ``` ``` ### Technical Analysis The documentation instructs the user to register the skill as a recurring cron task. Once configured, the scraper survives the original interactive session and executes every Monday without requiring approval for each run. The scheduled command performs outbound Craigslist requests and appends results to a persistent local lead file. The scheduling behavior is consistent with the advertised monitoring purpose and is not installed automatically by `monitor.py`; exploitation therefore requires a user or agent to follow the documented command. Nevertheless, it creates cross-session persistence and should be accompanied by explicit consent, lifecycle controls, and removal instructions. ### Attack Path 1. A user or agent follows the scheduled-use instructions in `SKILL.md`. 2. `openclaw cron add` registers the Python command as a recurring task. 3. The task remains active after the initial skill session ends. 4. Every Monday, the script makes network requests and, through `--save`, appends collected listing and contact information to `MASTER_LEAD_LIST.md`. 5. Execution continues until the scheduled task is explicitly removed. ### Impact Assessment The persistent task executes with the permissions of the account that registered it. It can repeatedly: - Make outbound HTTP requests. - Read data returned by Craigslist. - Create the configured parent directories when permitted. - Append data to the configured lead-list file. - Consume network, storage, and processing resources. The shown task does not elevate privileges or establish an external command-and-control channel. Its ...[truncated 113 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions - Clearly label scheduling as optional and explain that it creates persistent recurring execution. - Require explicit informed confirmation before an agent registers the task. - Document commands for listing, disabling, and deleting the scheduled task. - Use a distinctive task name so users can identify and remove it reliably. - Run the task under a dedicated least-privilege account with access only to the required output directory. - Add retention limits, duplicate suppression, and maximum file-size controls for the appended lead data. - Record each scheduled execution in a user-visible audit log. - Consider requiring periodic reauthorization rather than creating an indefinitely active schedule. ]]>
