T02 · Agent Memory Poisoning
- Location
README.md:42- Finding
Untrusted Conversation Content Can Be Promoted into Persistent Agent Memory
- Content
View full analysis
Vulnerability Details
File Location:
README.md:42-44; related workflow instructions atSKILL.md:24-27,SKILL.md:47-52, andSKILL.md:94-98
Vulnerability Type: Persistent memory poisoning through unvalidated conversation-derived content
Risk Level: MediumComplete Relevant Snippet
Faithful English translation of
README.md:42-44:markdown **Automatically execute after every conversation:** 1. Update `memory/YYYY-MM-DD.md` 2. If there are important findings, update `MEMORY.md` 3. Reflect on improvement pointsFaithful English translation of
SKILL.md:24-27:markdown ## Memory maintenance - [ ] Check today's conversations and extract key facts - [ ] Update memory/YYYY-MM-DD.md - [ ] Mark important content in MEMORY.mdRelevant scheduled instruction from
SKILL.md:47-52, translated into English:bash openclaw cron add \ --name "Daily memory organization" \ --cron "0 23 * * *" \ --session isolated \ --message "Review today's conversations, organize memory, and extract improvement points" \ --announceFaithful English translation of
SKILL.md:94-98:markdown **Trigger condition:** Scheduled trigger **Execution steps:** 1. Run in an isolated session 2. Deeply analyze memory files 3. Integrate knowledge into long-term memory 4. Generate an improvement reportTechnical Analysis
The documented workflow automatically reviews conversation content and writes extracted information into daily and long-term memory. It does not define a trust boundary between ordinary conversational data and authoritative persistent instructions.
No approval step, provenance metadata, content classification, instruction filtering, or rollback procedure is specified before information is promoted into
MEMORY.md. Consequently, content controlled by a malicious or untrusted conversation participant could be interpreted as an important fa ...[truncated 1570 chars]- Remediation
View remediation
Remediation Suggestions
- Require explicit user confirmation before promoting conversation-derived content into long-term memory.
- Treat all conversational instructions as untrusted data during memory extraction.
- Reject or quarantine content that attempts to define Agent rules, override safety requirements, request secrecy, or influence future sessions.
- Record provenance for every retained item, including source conversation, timestamp, author, confidence, and approval status.
- Separate factual memory, user preferences, and executable behavioral instructions into distinct stores. Do not permit conversational content to create persistent behavioral rules.
- Add a review queue between daily notes and
MEMORY.mdrather than allowing direct automated promotion. - Implement retention limits, version history, audit logs, and one-step rollback for persistent memory changes.
- Test the workflow with adversarial messages designed to induce false memory retention.
