T09 · Insecure Skill Coding Practices
- Location
SKILL.md:39- Finding
Persistent Plaintext Storage of Conversation History and Personal Context
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:39-44,SKILL.md:80-87,SKILL.md:130-143
Vulnerability Type: Persistent storage of sensitive data without defined safeguards
Risk Level: MediumComplete Code Snippets
text memory/SESSION-STATE.md — current focus (WAL, read first) memory/YYYY-MM-DD.md — daily raw log MEMORY.md — curated long-term memory memory/chat-log-YYYY-MM-DD.jsonl — conversation historytext Every session, the agent: 1. Reads `SESSION-STATE.md` (hot context) 2. Reads today's daily log 3. Works 4. Writes new decisions/insights to daily log 5. Periodically distills into `MEMORY.md`text Bootstrap checklist: 1. Fill `USER.md` with owner's name, timezone, communication styletext Month 2: agent knows your projects, communication style, key contactsTechnical Analysis
The documented architecture instructs an agent to retain raw conversation history, session state, daily logs, decisions, personal profile information, projects, and key contacts in ordinary files. The skill does not define access controls, restrictive file permissions, encryption, data minimization, secret filtering, retention periods, deletion procedures, or user consent requirements.
Conversation logs can contain credentials, authentication tokens, private messages, customer information, internal project details, or other sensitive data even when those values were not intentionally selected for long-term retention. Storing raw conversations and subsequently distilling them into additional memory files also creates multiple copies, increasing the exposure surface.
Attack Path
- A user supplies personal, confidential, or credential-bearing information during a normal agent conversation.
- Following the documented workflow, the agent writes the conversation or extracted decisions into a JSONL log, daily log, session-state fi ...[truncated 983 chars]
- Remediation
View remediation
Remediation Suggestions
- Make raw conversation logging disabled by default and require explicit, informed user opt-in.
- Store only the minimum information necessary for the agent's documented purpose; prefer concise summaries over complete transcripts.
- Apply secret and personal-data detection before every memory write, including filtering credentials, tokens, financial data, private keys, and unnecessary contact details.
- Define retention periods and automatic deletion for session state, daily logs, and raw JSONL transcripts.
- Create memory files with restrictive owner-only permissions and document the required permissions.
- Encrypt sensitive persistent state at rest where the threat model warrants it, with keys kept separately from the stored data.
- Obtain separate consent before retaining personal contacts, project information, or other third-party data.
- Prevent memory directories from being committed or publicly shared by supplying appropriate ignore rules and backup guidance.
- Provide commands or documented procedures for users to inspect, correct, export, and permanently delete retained information.
