T09 · Insecure Skill Coding Practices
- Location
setup.md:59- Finding
Plaintext Persistence of Sensitive Relocation and Identity-Document Metadata
- Content
View full analysis
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: MediumVulnerable 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 externallyTechnical 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
View remediation
Remediation Suggestions
- Obtain explicit user consent before persisting relocation, visa, family, or document metadata.
- Apply data minimization. Do not store physical document locations, exact travel dates, family details, or document expiry dates unless required and explicitly requested.
- Create files with restrictive owner-only permissions and verify that the
~/expat/directory is not readable by other local users. - Offer encrypted storage or integration with an operating-system-backed secure storage mechanism for sensitive fields.
- Separate general planning notes from sensitive identity-document metadata and protect the latter more strongly.
- Add configurable retention periods, secure deletion controls, and a command that lets users inspect and erase all stored information.
- 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.
- Do not record passport numbers, visa identifiers, national identification numbers, financial account details, authentication secrets, or document scans in Markdown.
- 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.
- Warn users that “stored locally” does not mean encrypted or inaccessible to other software running under their account.
