T09 · Insecure Skill Coding Practices
Warning
- Location
- SKILL.md:11
- Finding
- Sensitive Dating and Personal Data Stored in Unprotected Plaintext Files## Vulnerability Details **File Location**: `SKILL.md`, lines 11-12, 15-26, 29-56, and 94-120 **Vulnerability Type**: Plaintext storage of sensitive personal information without specified access controls **Risk Level**: Medium ### Vulnerable Code Snippet ```markdown - Create `~/dates/` as workspace - Treat all information as strictly private ``` ```markdown ~/dates/ ├── people/ │ ├── alex.md │ └── jordan.md ├── date-ideas/ │ ├── first-dates.md │ ├── casual.md │ └── special.md ├── history/ │ └── 2024.md └── reflections.md ``` ```markdown ## Important Details Vegetarian Allergic to cats Early riser ## Date History - Jan 15: Coffee at Blue Bottle — good conversation - Jan 22: Climbing gym — really fun, natural chemistry - Jan 28: Dinner at Sushi place — met their friend ``` ```markdown # 2024.md ## Alex - 4 dates, last: Jan 28 - Status: seeing regularly ## Jordan - 2 dates, last: Feb 3 - Status: didn't click, ended nicely ``` ### Technical Analysis The Skill directs the agent to create a persistent `~/dates/` workspace and store dating profiles, birthdays, health-related facts, relationship histories, behavioral observations, and personal reflections in ordinary Markdown files. Although it declares that this information must be treated as strictly private and must remain local, it does not require owner-only filesystem permissions, encryption at rest, permission verification, or protection against local indexing and backup systems. Consequently, files may inherit the user's current umask and surrounding host configuration. On a shared or misconfigured system, this could leave records readable by other local users or processes. Plaintext files may also be collected by desktop search tools, backup agents, endpoint software, or an existing synchronization service despite the Skill itself not initiating cloud synchronization. This finding does not indicate mal ...[truncated 1721 chars]
- Remediation
- ## Remediation Suggestions 1. Create `~/dates/` with owner-only permissions equivalent to mode `0700`. 2. Create all profile, history, and reflection files with owner-only permissions equivalent to mode `0600`. 3. Verify existing permissions before every read or write and refuse to store sensitive data when the workspace is accessible to unintended users. 4. Warn users explicitly that Markdown storage is plaintext and may be visible to local administrators, malware, backup software, indexers, or synchronization tools. 5. Offer encryption at rest through a reviewed operating-system credential store or a well-established encrypted storage mechanism, with keys kept separately from the records. 6. Minimize collected data and avoid recording sensitive third-party details unless the user explicitly requests it. 7. Provide deletion that removes all associated profile and history references, while clearly explaining that secure deletion cannot be guaranteed on journaling filesystems, SSDs, backups, or synchronized copies. 8. Document how users can exclude the workspace from desktop search, backups, and pre-existing synchronization services where appropriate.
