T09 · Insecure Skill Coding Practices
- Location
SKILL.md:17- Finding
Unprotected Storage of Sensitive Conversation and Planning Data
- Content
View full analysis
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: MediumVulnerable 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 patternsSKILL.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 resolvedtracking.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
View remediation
Remediation Suggestions
- Require explicit opt-in before persisting information extracted from conversations. Present the proposed entry and obtain confirmation before writing it.
- Apply data minimization. Store only the task and deadline by default; omit names, meeting context, message content, and relationship details unless strictly necessary.
- 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. - Use operating-system protected encrypted storage or application-level authenticated encryption for sensitive records. Keep encryption keys outside the planner files and archives.
- Define configurable retention limits. Automatically delete completed commitments and archived plans after the selected period rather than retaining them indefinitely.
- Provide commands to inspect, export, redact, and permanently delete individual records or all stored data.
- Allow users to mark conversations or entries as non-persistent and exclude sensitive categories from automatic extraction.
- Avoid placing sensitive context in reminders, notifications, automatic replies, or shared summaries unless the user explicitly approves the recipient and content.
- Document whether files may be included in cloud backups or synchronization services and provide a supported mechanism to exclude them.
- Add tests verifying restrictive permissions, consent enforcement, retention behavior, deletion, redaction, and prevention of accidental sensitive-data logging.
