T09 · Insecure Skill Coding Practices
Warning
- Location
- memory-template.md:57
- Finding
- Plaintext Password Storage in Persistent Trip Memory## Vulnerability Details **File Location**: `memory-template.md:57` **Vulnerability Type**: Plaintext sensitive-data storage **Risk Level**: Medium ### Vulnerable Code ```markdown ## Useful Info Saved - **Preview password preview:** - **Restaurant recommendations:** - **Local tips received:** ``` ### Technical Analysis The memory template provides a field for recording a password. `SKILL.md` describes the resulting `memory.md` file as persistent trip state, meaning a password entered into this field could be retained in plaintext across sessions. Password storage is not necessary for the Skill's stated Venice travel-guidance purpose. The project specifies no encryption, redaction, access restrictions, expiration policy, or integration with an approved secret manager. Consequently, a stored password could be exposed through workspace access, backups, synchronization, logs, or later Agent context retrieval. This is an insecure coding and configuration practice rather than evidence of deliberate credential theft. No mechanism was found that automatically collects or transmits the stored value. ### Attack Path 1. A user, host, travel document, or other input provides a password, such as an accommodation or Wi-Fi credential. 2. The Agent records that value in the password field when creating or updating `memory.md`. 3. The password remains available as plaintext in persistent project state. 4. Another user, process, backup system, synchronization service, or later Agent session with access to the workspace reads the stored value. 5. If the credential remains valid, the reader may use it to access the service it protects. Credential reuse could increase the impact beyond the original service. ### Impact Assessment Exploitation does not directly grant operating-system privileges or execute code. The immediate impact is loss of confidentiality for any password stored in the field. The practical access obtained depen ...[truncated 355 chars]
- Remediation
- ## Remediation Suggestions 1. Remove the password field from `memory-template.md`. 2. Store only a non-sensitive reference, such as “Credential available from host,” rather than the credential itself. 3. If retention is unavoidable, use an approved secret manager or operating-system credential store instead of Markdown memory. 4. Prevent secrets from entering prompts, logs, backups, synchronization systems, and long-term Agent context. 5. Apply least-privilege access controls and explicit retention limits to persistent trip data. 6. Add validation and redaction rules for password-like values, API tokens, authentication cookies, recovery codes, and other credentials. 7. Review existing generated `memory.md` files and securely remove any credentials already stored there. Rotate exposed credentials where appropriate.
