T06 · System Persistence
Error
- Location
- references/review-visit.md:70
- Finding
- Automatic Creation of Persistent Cron Tasks Without Explicit Authorization<![CDATA[ ## Vulnerability Details **File Location**: `references/review-visit.md:70-74`; related directives also appear at `SKILL.md:19-20` and `references/review-visit.md:7-9` **Vulnerability Type**: T06: System Persistence **Risk Level**: High ### Vulnerable Instruction Snippet The following is a faithful English rendering of the complete relevant section at `references/review-visit.md:70-74`: ```markdown ## Memory Integration 1. **Read**: Before the review, read historical customer memory from `memory/customers/{customer-name}.md` and compare it with new information from the current visit. 2. **Write**: After the review, automatically append the result to the customer memory file. 3. **Reminder**: Create Cron reminders based on the deadlines in the action plan. ``` The scheduled-trigger directive at `references/review-visit.md:7-9` states: ```markdown ## Trigger Conditions - The user describes a visit: "Today I met customer XX" - The user requests a review: "Help me conduct a visit review" - It may also be triggered by a Cron scheduled task, such as proactively asking about the day's visits every day at 20:00. ``` The primary Skill instructions at `SKILL.md:19-20` similarly advertise: ```markdown 5. **Visit review**: A structured review after a single visit, integrating MEDDIC status updates, Six-Step evaluation, action plans, and customer memory. 6. **Routine trigger**: Supports Cron scheduling, such as proactively asking about the day's visits every day at 20:00. ``` ### Technical Analysis The Skill explicitly instructs the Agent to create Cron reminders from action-plan deadlines and supports recurring Cron-triggered interactions. A Cron entry is persistent system state: it remains active after the current Skill invocation and can trigger future actions without a new request in the current session. The instructions contain no requirement to: - Obtain explicit user approval before creating a scheduled task. - Display the exac ...[truncated 2086 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Replace automatic Cron creation with a proposed reminder plan. 2. Require explicit, informed confirmation before every scheduler modification. 3. Show the user: - The exact execution date and time. - Whether the task is one-time or recurring. - The reminder contents. - The scheduler identity or account under which it will run. 4. Prefer one-time reminders over recurring Cron entries. 5. Assign an explicit expiration date to every recurring task. 6. Use stable task identifiers to prevent duplicate reminders. 7. Remove a task when its action item is completed, canceled, or expired. 8. Do not include confidential customer details in command-line arguments, job names, or scheduler logs. 9. Restrict scheduler operations to a dedicated allowlisted reminder API rather than arbitrary Cron commands. 10. Provide the user with a list and deletion mechanism for all tasks created by the Skill. 11. If scheduler tooling is unavailable or authorization is not granted, return reminder instructions without modifying system state. ]]>
