T09 · Insecure Skill Coding Practices
Warning
- Location
- setup.md:59
- Finding
- Plaintext Persistence of Sensitive Relocation and Identity-Document Metadata## Vulnerability Details **File Location**: `setup.md:59-70`; `memory-template.md:13-29`; `memory-template.md:51-57`; `SKILL.md:151-158` **Vulnerability Type**: Plaintext sensitive-data storage and inaccurate privacy assurances **Risk Level**: Medium ### Vulnerable Code `setup.md:59-70`: ```markdown ## What You're Saving (internally) After the conversation, create `~/expat/memory.md` with: - Move status and phase - Origin and destination countries - Target timeline and key dates - Visa status and type - Family/logistics situation - Their main concerns - Reminder preferences Also create `~/expat/documents.md` if they mentioned any document status. ``` `memory-template.md:13-29`: ```markdown ## The Move origin: destination: target_date: visa_type: visa_status: exploring | applied | approved | denied ## Situation solo: yes | no family: pets: belongings: minimal | moderate | full household ## Key Dates <!-- Add dates as they're established --> - Visa application deadline: - Lease end date (origin): - Flight booked: - Registration deadline (destination): ``` `memory-template.md:51-57`: ```markdown ## Personal Documents | Document | Status | Expiry | Location | Notes | |----------|--------|--------|----------|-------| | Passport | | | | | | Birth certificate | | | | | | Marriage certificate | | | | | ``` `SKILL.md:151-158`: ```markdown **Data that stays local:** - All personal documents and notes in ~/expat/ - No external services or APIs used **This skill does NOT:** - Store passport numbers or sensitive data in plain text - Access files outside ~/expat/ - Share any information externally ``` ### Technical Analysis The skill directs the agent to collect and persist a detailed relocation profile in ordinary Markdown files under `~/expat/`. Stored fields include origin and destination countries, target travel dates, visa t ...[truncated 2691 chars]
- Remediation
- ## Remediation Suggestions 1. Obtain explicit user consent before persisting relocation, visa, family, or document metadata. 2. Apply data minimization. Do not store physical document locations, exact travel dates, family details, or document expiry dates unless required and explicitly requested. 3. Create files with restrictive owner-only permissions and verify that the `~/expat/` directory is not readable by other local users. 4. Offer encrypted storage or integration with an operating-system-backed secure storage mechanism for sensitive fields. 5. Separate general planning notes from sensitive identity-document metadata and protect the latter more strongly. 6. Add configurable retention periods, secure deletion controls, and a command that lets users inspect and erase all stored information. 7. Redact or generalize values where exact data is unnecessary, such as storing only the month of travel or a warning that a document expires soon. 8. Do not record passport numbers, visa identifiers, national identification numbers, financial account details, authentication secrets, or document scans in Markdown. 9. Update the privacy documentation so it accurately states which sensitive metadata may be stored, where it is stored, how it is protected, and who may be able to access it. 10. Warn users that “stored locally” does not mean encrypted or inaccessible to other software running under their account.
