T09 · Insecure Skill Coding Practices
Warning
- Location
- setup.md:13
- Finding
- Persistent Plaintext Storage of Personal and Travel Information## Vulnerability Details **File Location**: `setup.md`, lines 13-33; `memory-template.md`, lines 7-20 and 54-57 **Vulnerability Type**: Persistent plaintext storage of potentially sensitive user information **Risk Level**: Medium ### Vulnerable Code `setup.md`, lines 13-33: ```markdown ### 2. Initialize Memory File Create `~/france/memory.md` using the template from `memory-template.md`. ### 3. Gather Trip Context Ask naturally (not as a form): - Which month are you going? (season changes crowds and pricing) - How long is the trip? - Which bases matter most? (Paris, Lyon, Provence, Riviera, other) - Food-first, museums-first, coast-first, or mixed? - Any mobility, dietary, or budget constraints? - Rail-focused, rental car, or mixed transport? ### 4. Save to Memory Update `~/france/memory.md` with their answers. ## Returning Users If `~/france/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 ``` `memory-template.md`, lines 7-20 and 54-57: ```markdown ## Trip Details - **Dates:** - **Duration:** - **Regions:** [Paris-Ile-de-France / Lyon-Rhone / Provence-Marseille / French Riviera / Bordeaux-Atlantic / Alps-East] - **Cities/Bases:** - **Travelers:** [solo / couple / family / group] - **Kids:** [yes (ages) / no] ## Preferences - **Travel style:** [foodie / culture / coast / road-trip / family / nightlife / mixed] - **Budget:** [budget / mid-range / luxury] - **Dietary:** [none / vegetarian / vegan / gluten-free / other] - **Mobility:** [full / limited / wheelchair] - **Transport:** [rail / rental car / public transit / mixed] ``` ```markdown ## Bookings Made | What | Where | Date | Confirmation | |------|-------|------|--------------| | | | | | ``` ### Technical Analysis The Skill instructs the agent to collect and persist trip dates, destinations, chi ...[truncated 2561 chars]
- Remediation
- ## Remediation Suggestions 1. Obtain explicit, informed consent before creating persistent memory or saving any user-provided information. 2. Default to session-only processing and make persistent storage opt-in. 3. Minimize stored data. Avoid retaining exact child ages, detailed mobility or health-related information, and exact travel dates unless necessary. 4. Remove the free-form `Confirmation` field, or clearly prohibit storing reservation codes, authentication links, passport details, payment information, credentials, and other secrets. 5. Create the directory and file with owner-only permissions where supported, such as directory mode `0700` and file mode `0600`. 6. Provide commands or documented procedures to view, edit, export, and permanently delete stored memory. 7. Define a retention policy and automatically remove completed or stale trip records after a user-approved period. 8. Inform users whenever existing memory is read or updated rather than reading it silently. 9. If sensitive information must be retained, use an operating-system credential store or appropriately encrypted storage instead of a plaintext Markdown file.
