T09 · Insecure Skill Coding Practices
Warning
- Location
- SKILL.md:17
- Finding
- Unprotected Storage of Sensitive Conversation and Planning Data## Vulnerability Details **File Location**: `SKILL.md:17-23`, `SKILL.md:82-87`, `tracking.md:3-20`, `tracking.md:23-25`, `tracking.md:105-111` **Vulnerability Type**: Plaintext storage of sensitive data without defined access controls, consent, or retention safeguards **Risk Level**: Medium ### Vulnerable Code Snippets `SKILL.md:17-23`: ```markdown ## Storage Data stored in `~/planner/`: - **config** — Profile, energy windows, constraints - **today** — Current day plan (regenerated daily) - **commitments** — Open commitments and follow-ups - **weekly** — Week overview with deadlines - **archive/** — Past plans for patterns ``` `SKILL.md:82-87`: ```markdown Every promise made = logged automatically: - Extract from conversations: "I'll send you X by Y" - Add to commitments file with deadline - Remind before deadline (configurable: 24h, 48h) - Flag overdue until resolved ``` `tracking.md:3-20`: ```markdown ## What Gets Tracked Every promise or commitment made in conversation: **Trigger phrases:** - "I'll send you..." - "Let me get back to you..." - "I'll check on that..." - "I promised to..." - "Can you remind me to..." - "I need to tell X about Y" **Extracted data:** | Field | Example | |-------|---------| | What | Send proposal | | To whom | Client X | | By when | Friday 5pm | | Context | Follow-up to meeting | ``` `tracking.md:23-25`: ```markdown ## Storage Format In `~/planner/commitments`: ``` `tracking.md:105-111`: ```markdown **Metrics to monitor:** - How many commitments made per week - What % completed on time - What topics keep getting pushed (pattern) - Who you make most commitments to **Weekly insight:** ``` ### Technical Analysis The Skill directs the Agent to automatically extract and persist information from conversations, including names, relationships, commitments, deadlines, meeting context, behavioral patterns, cale ...[truncated 2602 chars]
- Remediation
- ## Remediation Suggestions 1. Require explicit opt-in before persisting information extracted from conversations. Present the proposed entry and obtain confirmation before writing it. 2. Apply data minimization. Store only the task and deadline by default; omit names, meeting context, message content, and relationship details unless strictly necessary. 3. Create `~/planner/` with owner-only permissions (`0700`) and each data file with owner read/write permissions (`0600`). Refuse to continue if permissions are broader and cannot be corrected safely. 4. Use operating-system protected encrypted storage or application-level authenticated encryption for sensitive records. Keep encryption keys outside the planner files and archives. 5. Define configurable retention limits. Automatically delete completed commitments and archived plans after the selected period rather than retaining them indefinitely. 6. Provide commands to inspect, export, redact, and permanently delete individual records or all stored data. 7. Allow users to mark conversations or entries as non-persistent and exclude sensitive categories from automatic extraction. 8. Avoid placing sensitive context in reminders, notifications, automatic replies, or shared summaries unless the user explicitly approves the recipient and content. 9. Document whether files may be included in cloud backups or synchronization services and provide a supported mechanism to exclude them. 10. Add tests verifying restrictive permissions, consent enforcement, retention behavior, deletion, redaction, and prevention of accidental sensitive-data logging.
