T09 · Insecure Skill Coding Practices
Warning
- Location
- SKILL.md:8
- Finding
- Plaintext Storage of Sensitive Emotional and Health-Related Data## Vulnerability Details **File Location**: `SKILL.md:8-11`; related data definitions and examples appear at `SKILL.md:25-42`, `SKILL.md:60-73`, `SKILL.md:76-98`, `SKILL.md:101-116`, and `SKILL.md:131-151` **Vulnerability Type**: Plaintext storage of sensitive personal data **Risk Level**: Medium ### Vulnerable Code ```markdown ## Core Behavior - User shares how they feel → log with context - User asks about patterns → surface insights - Proactively check in during difficult periods - Create `~/feelings/` as workspace ``` The stored entries are intended to include sensitive contextual and physical information: ```markdown ## Morning — 8:00 AM Feeling: Anxious, 6/10 Context: Big presentation today Body: Tight chest, restless Thought: "What if I mess up" ``` The tracking requirements further prescribe collection of emotional, physical, and contextual data: ```markdown ## What To Track - Emotion name(s) - Intensity (1-10) - Context/trigger - Physical sensations - What helped (after) ``` ### Technical Analysis The Skill instructs the Agent to persist emotional journals under the predictable `~/feelings/` directory as Markdown files. The requested records can contain moods, intensity ratings, triggers, physical symptoms, private thoughts, coping strategies, relationships, and inferred behavioral patterns. No instructions require explicit storage consent, restrictive directory or file permissions, encryption at rest, collection minimization, retention limits, secure deletion, or warnings about backup and synchronization exposure. Consequently, sensitive personal information may be written as ordinary plaintext using the user's default permissions. The behavior is consistent with the declared emotional-tracking purpose, and there is no evidence of intentional exfiltration, malicious code, remote communication, or privilege escalation. The risk arises from insecure handling of sensitive data rathe ...[truncated 1463 chars]
- Remediation
- ## Remediation Suggestions 1. Obtain explicit, informed user consent before creating persistent emotional records, and offer session-only tracking as the default. 2. Clearly disclose what fields will be stored, where they will be stored, and how long they will be retained. 3. Create `~/feelings/` with owner-only permissions such as `0700`, and create journal files with permissions such as `0600`. 4. Offer encryption at rest using an established operating-system key store or a well-reviewed encrypted storage mechanism. 5. Minimize collection by making thoughts, physical symptoms, names, and detailed context optional rather than automatic. 6. Add configurable retention periods and commands for reviewing, exporting, redacting, and securely deleting stored records. 7. Warn users that home-directory backup, indexing, synchronization, and sharing tools may copy plaintext records. 8. Avoid storing third-party names or identifying details unless necessary and explicitly approved by the user. 9. Ensure proactive check-ins do not automatically persist responses without renewed or previously documented consent.
