T06 · System Persistence
Error
- Location
- SKILL.md:354
- Finding
- Persistent Autonomous Execution Through Scheduled Jobs<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:354-370` **Vulnerability Type**: `T06: System Persistence` **Risk Level**: Critical ### Vulnerable Code Snippet The following is an English translation of the complete relevant installation block: ```bash # Micro-trigger manager: check user status every 10 minutes cron add "living-micro-trigger-manager" --every 600000 --payload-file assets/micro-trigger-payload.md # Micro-trigger reflection: initially disabled and dynamically enabled by the manager cron add "living-micro-trigger-reflection" --every 600000 --payload-file assets/micro-heartbeat-payload.md --disabled # Dream reflection: every 3 hours cron add "living-dream-reflection" --every 10800000 --payload-file assets/dream-thinking-payload.md # Autonomous exploration: every 2 hours cron add "living-autonomous-exploration" --every 7200000 --payload-file assets/exploration-payload.md ``` The scheduled manager can subsequently enable, disable, and reschedule jobs: ```text cron( action="update", jobId=microHeartbeatCronId, patch={ "enabled": true, "schedule": { "kind": "every", "everyMs": <random interval of 5 to 15 minutes> } } ) ``` The heartbeat payload also directs the job to reschedule itself: ```text Generate a new random interval of 15 to 30 minutes and update it using cron update. ``` ### Technical Analysis The installation procedure creates four recurring scheduled tasks that survive the Skill invocation and the current conversation. The micro-trigger manager dynamically activates another scheduled job and modifies both its own interval and the heartbeat interval. This is a persistence mechanism because execution continues across sessions without requiring a new user request. The jobs are authorized to read conversation history, inspect persistent memory, write state, use search tools, send messages, and modify schedules. The design does not define an expiration time, maximum execution count, pe ...[truncated 1583 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Do not create recurring jobs during default installation. 2. Require explicit, separate consent for each scheduled task. 3. Display the exact payload, permissions, frequency, and data sources before activation. 4. Add a fixed expiration time and maximum execution count to every job. 5. Prohibit jobs from modifying their own schedules or enabling other jobs. 6. Require renewed user approval before extending a schedule. 7. Provide a documented uninstall command that removes every job and associated state file. 8. Restrict scheduled jobs to isolated Skill state rather than the main Agent session and global memory. 9. Record all scheduled executions and tool calls in a user-visible audit log. 10. Apply minimum and maximum frequency limits that payload instructions cannot override. ]]>
