T09 · Insecure Skill Coding Practices
Warning
- Location
- setup.md:24
- Finding
- Plaintext Persistence of Sensitive Travel and Booking Data## Vulnerability Details **File Location**: `setup.md:24-33`; related schema in `memory-template.md:7-20,54-57` **Vulnerability Type**: Plaintext sensitive-data storage and excessive data retention **Risk Level**: Medium ### Vulnerable Code Snippets `setup.md:24-33`: ```markdown ### 4. Save to Memory Update `~/mexico/memory.md` with their answers. ## Returning Users If `~/mexico/memory.md` exists: 1. Read it silently 2. Reuse known preferences 3. Ask what changed since last plan 4. Update memory with new priorities and constraints ``` Related fields in `memory-template.md:7-20`: ```markdown ## Trip Details - **Dates:** - **Duration:** - **Regions:** [Mexico City / Oaxaca / Guadalajara-Jalisco / Yucatan-Riviera Maya / Baja / Central Highlands] - **Cities/Bases:** - **Travelers:** [solo / couple / family / group] - **Kids:** [yes (ages) / no] ## Preferences - **Travel style:** [foodie / culture / beach / road-trip / family / nightlife / mixed] - **Budget:** [budget / mid-range / luxury] - **Dietary:** [none / vegetarian / vegan / gluten-free / other] - **Mobility:** [full / limited / wheelchair] - **Transport:** [public transit / rental car / private transfers / mixed] ``` Related booking fields in `memory-template.md:54-57`: ```markdown ## Bookings Made | What | Where | Date | Confirmation | |------|-------|------|--------------| | | | | | ``` ### Technical Analysis The Skill directs the Agent to persist trip details in `~/mexico/memory.md` and silently reuse that file in later sessions. The schema can contain exact travel dates and destinations, family composition and children's ages, dietary or mobility information, budget profile, and booking confirmation values. These records are stored as plaintext. The reviewed instructions do not require explicit user consent before persistence, data minimization, redaction of booking references, owner-only file permissions, encr ...[truncated 1869 chars]
- Remediation
- ## Remediation Suggestions 1. Remove the `Confirmation` column and explicitly prohibit storing reservation codes, ticket numbers, passport data, payment information, account credentials, or identity-document details. 2. Request explicit user consent before creating or updating persistent memory, and offer a session-only mode. 3. Store only the minimum planning information required. Prefer approximate travel periods and broad regions over exact dates and detailed routes where possible. 4. Avoid retaining children's exact ages and detailed health-related information unless necessary and expressly approved. 5. Create the directory and file with owner-only permissions where supported, such as directory mode `0700` and file mode `0600`. 6. Define a retention policy that deletes or anonymizes completed-trip records after a short user-selectable period. 7. Provide commands or Skill actions that let users inspect, edit, export, and permanently delete stored memory. 8. Before each write, clearly disclose which fields will be persisted and exclude free-form content that may contain unexpected sensitive information. 9. If high-sensitivity data must be retained, use an operating-system credential store or appropriately encrypted storage rather than a plaintext Markdown file.
