T09 · Insecure Skill Coding Practices
- Location
references/memory-structure.md:5- Finding
Persistent Plaintext Storage of Sensitive Identity, Medical, Financial, and Travel Data
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This travel-planning skill is not malicious, but it should be reviewed because it encourages storing sensitive travel, identity, medical, and financial details in persistent plaintext files without clear safeguards.
Install only if you are comfortable keeping travel records in local markdown files. Avoid storing full passport, visa, booking, policy, card, medical, or device identifiers unless strictly necessary; prefer redacted values and an encrypted vault for document copies or high-risk personal data. Verify visa and entry requirements with official sources for your own nationality before relying on examples.
references/memory-structure.md:5Persistent Plaintext Storage of Sensitive Identity, Medical, Financial, and Travel Data
The trigger list includes broad, common phrases such as 'weather', 'documents', 'insurance', 'accommodation', and 'visa' that are likely to match many unrelated user requests. This can cause unintended activation of the skill and unnecessary access to or display of travel-related memory, which is more concerning here because the skill manages sensitive itinerary and document data.
The trigger phrase 'find hotel' overlaps with a generic built-in verb pattern centered on 'find', which can shadow or intercept broader assistant behavior. In practice this may route unrelated discovery requests into this skill unexpectedly, creating confusion and increasing the chance that travel memory is used in the wrong context.
The skill explicitly stores and processes passport validity, visas, insurance, bookings, and reminders, but the description provides no warning or guidance for handling sensitive personal travel data. Without clear limits on what should be stored or displayed, users or downstream agents may place excessive sensitive data into markdown files, increasing privacy and identity-risk exposure if those files are accessed or surfaced inadvertently.
All headings, labels, and instructions are presented only in German, which imposes a language choice on users. Under the stated policy, a forced language without user opt-in or explicit justification is a natural-language policy violation.
This template prompts users to record and keep readily accessible highly sensitive data, including medical details, insurance policy numbers, emergency contacts, document-copy locations, and device identifiers, but provides no guidance on minimization, redaction, or safe storage. If the card is lost, photographed, or accessed by an unauthorized person, it could enable identity theft, account/social-engineering abuse, privacy violations, or targeted fraud during travel.
The file presents all instructions, reminders, and guidance only in German, which can be a natural-language locale constraint. Under the stated policy, forcing a specific language without user opt-in or a clearly documented regional justification can be a policy violation.
The file presents visa guidance that is valid only for German travelers without clearly labeling it as user-specific or prompting for nationality. In a travel-planning skill, users may incorrectly generalize this advice to themselves, leading to missed visa requirements, denied boarding, or entry issues.
This markdown template asks users to record booking numbers and later insurance policy numbers, which can be sensitive travel-related data. The file provides no warning or note about avoiding real identifiers in shared documents or handling the data carefully.
The markdown includes dedicated 'Buchungs-Nr' fields for accommodations and activities, encouraging users to store potentially sensitive reservation identifiers. Because there is no warning about privacy, sharing, or redaction, the description omits guidance for behavior that could affect user data privacy.
This markdown file contains user-facing instructions exclusively in German, and there is no indication that the skill is intended only for German-speaking users or a specific locale. Under the policy rule for language/locale, forcing a single language without opt-in can be a natural-language policy violation.
This markdown file is entirely in German, including headings and checklist items, and does not indicate that the skill is intentionally limited to German-speaking users or provide any opt-in for language preference. That can violate language/locale policy when a skill implicitly forces a specific language for all users.
This markdown file uses German throughout, including the title, section headings, and field labels, but does not indicate that German is optional or that the template is intended only for German-speaking users. Under the policy rule for natural-language constraints, forcing a specific language without user opt-in can be a locale policy violation.
No suspicious patterns detected.