T02 · Agent Memory Poisoning
- Location
SKILL.md:25- Finding
Persistent Memory Poisoning Through Automatic Capture of User-Controlled Instructions
- Content
View full analysis
"` - Optionally pass a `scope_id` (e.g. project name) for logical grouping. - Do **not** pass a `chat_id` — that makes memories unfindable via default search. Omitting it stores in `chat_id=global`. ``` ### Technical Analysis The skill instructs the agent to treat user-provided instructions as information eligible for immediate persistent capture. It then directs future sessions to retrieve and silently absorb stored context. The default storage behavior places captured information in the global `chat_id` scope. No controls are specified to: - Distinguish factual memories from behavioral instructions. - Mark stored content as untrusted data. - Confirm memory creation with the user. - Validate or sanitize content before persistence. - Isolate memories by conversation or project by default. - Prevent retrieved text from influencing agent instructions. - Display loaded memories so the user can identify poisoned state. - Expire, review, or delete unsafe entries. This creates a persistent trust-boundary failure. An attacker-controlled instruction can be summarized into long-term memory and later reintroduced into unrelated ses ...[truncated 1698 chars]- Remediation
View remediation
