T09 · Insecure Skill Coding Practices
- Location
memory-template.md:57- Finding
Plaintext Password Storage in Persistent Trip Memory
- Content
View full analysis
Vulnerability Details
File Location:
memory-template.md:57
Vulnerability Type: Plaintext sensitive-data storage
Risk Level: MediumVulnerable 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.mddescribes the resultingmemory.mdfile 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
- A user, host, travel document, or other input provides a password, such as an accommodation or Wi-Fi credential.
- The Agent records that value in the password field when creating or updating
memory.md. - The password remains available as plaintext in persistent project state.
- Another user, process, backup system, synchronization service, or later Agent session with access to the workspace reads the stored value.
- 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
View remediation
Remediation Suggestions
- Remove the password field from
memory-template.md. - Store only a non-sensitive reference, such as “Credential available from host,” rather than the credential itself.
- If retention is unavoidable, use an approved secret manager or operating-system credential store instead of Markdown memory.
- Prevent secrets from entering prompts, logs, backups, synchronization systems, and long-term Agent context.
- Apply least-privilege access controls and explicit retention limits to persistent trip data.
- Add validation and redaction rules for password-like values, API tokens, authentication cookies, recovery codes, and other credentials.
- Review existing generated
memory.mdfiles and securely remove any credentials already stored there. Rotate exposed credentials where appropriate.
- Remove the password field from
