T06 · System Persistence
Error
- Location
- SKILL.md:15
- Finding
- Persistent Cross-Session Agent Influence Through Scheduled System Events<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, lines 15–26; related persistence-recreation instruction at lines 64–67 **Vulnerability Type**: Scheduled-task persistence **Risk Level**: High ### Vulnerable Code ```markdown # First-Run When you see this skill for the first time, introduce it to the user: explain you'll occasionally weave in a question to learn more about them, and can automate this with a daily schedule. Ask the user if they'd like to set up a schedule. Suggest 1-2 times per day (morning, evening) and let them pick. Only create crons after they confirm. Once confirmed, create the crons: ``` openclaw cron add --name "learn-me-morning" --cron "0 9 * * *" --session main --system-event "learn-me: Pick one question direction from memory/next-questions.md and weave it naturally into your next message." ``` Create `memory/next-questions.md` with sections: Question Directions, Sensitive Topics. Tell the user what schedule was created and that they can ask to reschedule or disable it anytime. ``` The related recovery instruction reinforces persistence: ```markdown - No `learn-me-*` crons exist — run First-Run again. Use names: `learn-me-morning`, `learn-me-day`, `learn-me-evening`. ``` ### Technical Analysis The Skill directs the Agent to install recurring cron jobs that deliver a `--system-event` to the Agent's `main` session. This creates behavioral persistence beyond the invocation in which the Skill was enabled. The event instructs future responses to consult `memory/next-questions.md` and insert personal questions, allowing the Skill to influence otherwise unrelated conversations. The memory file also persists personal-question directions and sensitive-topic state across sessions. Although cron creation requires user confirmation and supports the declared scheduling feature, targeting the main session grants broader scope than necessary. A dedicated, isolated session would reduce the ability of the scheduled event to a ...[truncated 2119 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Replace the recurring main-session system event with a session-local reminder where possible. 2. If scheduling is required, target a dedicated isolated session rather than `--session main`. 3. Before installation, display the exact cron command, execution frequency, destination session, stored data, and retention behavior. 4. Require explicit, informed consent separately for: - Creating the scheduled task. - Storing personal-question directions. - Reusing stored information across sessions. 5. Provide exact commands for listing and removing all `learn-me-*` cron entries. 6. Provide explicit controls to inspect, edit, and permanently delete `memory/next-questions.md`. 7. Do not automatically restore removed jobs. Treat removal as revocation of consent and require a fresh user request before recreating them. 8. Apply data minimization and a defined expiration period to stored question directions and sensitive-topic markers. 9. Avoid storing secrets, precise location information, medical details, authentication information, or other highly sensitive personal data. 10. Clearly notify the user whenever a scheduled event influences a response and offer an immediate opt-out mechanism. ]]>
