T09 · Insecure Skill Coding Practices
Warning
- Location
- memory-template.md:120
- Finding
- Sensitive family and medical information stored in unprotected plaintext files## Vulnerability Details **File Location**: `memory-template.md:120-139`, `memory-template.md:214-278`, `memory-template.md:368-381`; related storage design in `SKILL.md:36-60` and `SKILL.md:128-133` **Vulnerability Type**: Plaintext storage of sensitive information without enforced access controls **Risk Level**: Medium ### Vulnerable Code Snippets `memory-template.md:120-139`: ```markdown ## `people/children.md` ```markdown # Children ## Children in Scope | Name | Age range | School / childcare | Shared logistics | Private sensitivities | |------|-----------|--------------------|------------------|-----------------------| | | | | | | ## Operational Notes - Pickup permissions - Activity gear requirements - Allergy or medication notes needed for logistics only - Topics that stay private unless an adult must act ``` ``` `memory-template.md:214-278`: ```markdown ## `logistics/contacts.md` ```markdown # Contacts ## Priority Contacts | Name / Place | Type | Why it matters | Preferred contact route | |--------------|------|----------------|-------------------------| | | | | | ## Notes - school office - clinic - pharmacy - backup caregiver - neighbor or local support ``` ## `care/appointments.md` ```markdown # Appointments ## Upcoming | Date | Person | Appointment | Prep needed | Transport | Follow-up | |------|--------|-------------|-------------|-----------|-----------| | | | | | | | ## Follow-Up Queue - refill - call back - forms - next booking ``` ## `care/medications.md` ```markdown # Medications ## Current Medications | Person | Medication | Timing | Refill date | Administration notes | |--------|------------|--------|-------------|---------------------- ...[truncated 3640 chars]
- Remediation
- ## Remediation Suggestions 1. **Minimize stored data by default** - Store only the operational fact required for coordination. - Avoid recording diagnoses, detailed symptoms, private sensitivities, full medication histories, or exact identity-document locations unless strictly necessary. - Use generalized entries such as “adult confirmation required” instead of detailed private explanations where possible. 2. **Enforce restrictive filesystem permissions** - Create `~/family/` with owner-only permissions, such as mode `0700` on POSIX systems. - Create sensitive files with owner-only permissions, such as mode `0600`. - Verify existing permissions before writing and warn the user if group or public access is enabled. - Implement equivalent user-scoped access controls on Windows. 3. **Separate private and shared records technically** - Do not place private notes in the same directory or files as household-shared operational data. - Use separate per-person private storage with independently enforced access controls. - Keep shared files limited to minimum-necessary handoff information. 4. **Protect high-sensitivity records** - Recommend encrypted storage for medication, health, custody, identity, and document-location information. - Prefer references to records in an established encrypted vault rather than duplicating sensitive content in Markdown. - Do not store authentication secrets, document numbers, or scanned identity documents in this structure. 5. **Provide explicit persistence warnings** - Before saving sensitive information, explain that the data will remain as plaintext unless protected by the underlying system. - Ask for separate, explicit confirmation for health information, minors' details, and document-location metadata. - Alert users that backups, search indexing, and synchronization software may copy the files. 6. **Add retention and deletion controls** ...[truncated 605 chars]
