T09 · Insecure Skill Coding Practices
- Location
SKILL.md:18- Finding
Plaintext Persistence of Sensitive Substance-Use and Health Data
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:18-25, 52-56, 69-74;assets/memory-template.md:4-23
Vulnerability Type: Sensitive data stored in plaintext without prescribed access controls
Risk Level: MediumComplete Vulnerable Snippets
From
SKILL.md:18-25:markdown Memory lives in `~/quit-weed/`. Created on first use. \`\`\` ~/quit-weed/ ├── memory.md # Status, goal mode, quit date, streak, preferences ├── logs/ │ ├── cravings.md # Craving entries: timestamp, intensity, trigger, context │ └── smoke.md # Smoke events (if reduce mode): timestamp, amount, trigger ├── checkins.md # Daily check-ins: mood, sleep, craving count, notes ├── triggers.md # Identified trigger patterns and replacement strategies └── plan.md # Active quit/reduce plan \`\`\`From
SKILL.md:52-56:markdown When user reports a craving, log it with: - Timestamp - Intensity (1-10) - Trigger (time of day, emotion, situation, social context) - What they did about itFrom
SKILL.md:69-74:markdown Once per day (or when prompted), log: - Mood (1-10) - Sleep quality (1-10) - Craving count today - Any notes This builds the data for pattern analysis.From
assets/memory-template.md:4-23:markdown ## Status - **Goal mode:** (quit / reduce / break) - **Quit date:** (YYYY-MM-DD HH:MM) - **Streak start:** (YYYY-MM-DD) - **Previous attempts:** (count) - **Last smoke:** (YYYY-MM-DD HH:MM) ## User Context - **Typical usage:** (e.g. "daily, evenings, 2-3 joints") - **Primary triggers:** (to be filled as patterns emerge) - **Replacement behaviors:** (to be filled) - **Reason for quitting:** (user's own words) ## Preferences - **Check-in frequency:** (daily / every other day / weekly) - **Tone:** (supportive / tough love / casual) - **Money saved tracking:** (yes/no, monthly spend amount) ## Notes (free-form agent notes — patterns observed, what works, what doesn't)Technical Analysis
The ski ...[truncated 2155 chars]
- Remediation
View remediation
Remediation Suggestions
- Create
~/quit-weed/with owner-only permissions (0700) and every data file with mode0600, independent of the user's defaultumask. - Verify ownership and permissions before every read or write, and refuse unsafe symlinks or files owned by another account.
- Obtain explicit user consent before enabling persistent tracking and clearly enumerate the categories of information that will be retained.
- Minimize collection by avoiding unrestricted notes and storing only fields necessary for the requested tracking function.
- Provide configurable retention periods, selective record deletion, full data export, and secure account-level deletion controls.
- Offer encrypted-at-rest storage where the execution environment supports safe key management.
- Warn users that local backup, cloud synchronization, and shared-account configurations may copy or expose the records.
- Document the security boundary accurately: “no external requests” prevents direct transmission by the skill but does not protect against other local software or filesystem access.
- Create
