T02 · Agent Memory Poisoning
- Location
SKILL.md:219- Finding
Persistent Memory Modification Without Explicit User Consent
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 219 and 228
Vulnerability Type: Persistent agent memory poisoning
Risk Level: MediumVulnerable Code Snippet:
markdown User provides feedback → default action: update memory only (no skill file change)markdown 1. **Store in memory first** — `memory(action='add', ...)` records preferences and lessonsTechnical Analysis
The skill directs the agent to write user feedback into persistent memory by default. Although modifying the skill file itself requires an explicit command, the memory-writing path does not require separate, informed user consent.
Because feedback content may be untrusted or misleading, automatically converting it into durable preferences or lessons creates a persistent state-poisoning channel. This capability is not required to complete the skill's primary scientific-research function. Stored content could affect evidence standards, research decisions, output behavior, or tool-use preferences in later and otherwise unrelated sessions.
Attack Path
- An attacker or untrusted user submits crafted content framed as workflow-improvement feedback.
- The skill treats that feedback as material to be recorded under its default behavior.
- The agent invokes
memory(action='add', ...), persisting attacker-controlled preferences or lessons. - The stored content is retrieved or applied during subsequent sessions.
- Future agent behavior is influenced beyond the original conversation, potentially weakening research quality or altering decisions.
Impact Assessment
Successful exploitation can modify the agent's long-term behavioral state across sessions. The attacker does not obtain operating-system privileges or direct code execution based on the reviewed evidence. However, the attacker may gain persistent influence over future research methodology, evidence handling, output preferences, and related agent decisions wherever the poisoned memory is ...[truncated 181 chars]
- Remediation
View remediation
Remediation Suggestions
- Remove default memory persistence for ordinary user feedback.
- Require a separate and explicit confirmation immediately before every persistent-memory write.
- Present the exact proposed memory content, purpose, scope, and retention behavior to the user before confirmation.
- Treat persisted content as untrusted data rather than authoritative instructions.
- Validate proposed memories against system safety rules and reject content that changes security controls, authorization boundaries, or unrelated behavior.
- Scope stored memories to the relevant user and task; prevent cross-user and unrelated cross-task application.
- Add review, correction, expiration, and deletion controls for stored memories.
- Record an auditable provenance trail identifying when, why, and under whose authorization each memory was created.
- Prefer conversation-local state unless persistence is essential and explicitly requested.
