The Incident
On July 6, 2026, researchers posted the arXiv paper “When Claws Remember but Do Not Tell: Stealthy Memory Injection in Persistent Personal Agents” (arXiv 2607.05189), introducing MemGhost — a one-shot payload generation framework that turns a single crafted email into a persistent, hidden write into a personal AI agent’s long-term memory. The paper measures success not by whether the agent obeys the injected instruction in the same turn — the ordinary prompt-injection bar — but by two joint conditions: the agent must adopt the poisoned memory into its persistent store, and its user-facing reply must contain no trace of the write. On the paper’s WhisperBench benchmark (108 tasks across five risk categories driven over a real IMAP/SMTP workflow), MemGhost reached 87.5% end-to-end success against OpenClaw with GPT-5.4 and 71.4% against an agent built on the Claude Code SDK with Sonnet 4.6. The framework transfers: 80.4% against NanoClaw, 82.1% against Hermes, and additional demonstrated success against the vector-store Mem0 backend.
The training regime is standard-shape but consequential: an environment proxy emulates persistent-agent execution end-to-end, and an objective proxy rolls “memory adoption” and “conversational stealth” into a dense rubric-based reward. The attacker policy is trained by supervised fine-tuning followed by reinforcement learning against those proxies. The result is a payload generator that reliably produces email bodies whose surface reads like ordinary correspondence and whose effect, once the agent processes the inbox, is a durable write into AGENTS.md or MEMORY.md — the files most persistent-agent frameworks load at every session start as authoritative user preferences and standing instructions. Dedicated input filters missed the payload in over 90% of cases, and a model hardened specifically to ignore email-borne instructions still complied roughly half the time. No named organization has been named as a victim; MemGhost is a red-team demonstration against open-source and SDK-based agents, not an in-the-wild breach.
MITRE ATT&CK coverage: T1204.002 (User Execution: Malicious File), T1027 (Obfuscated Files or Information). MITRE ATLAS: AML.T0051.001 (LLM Prompt Injection: Indirect).
The Authority Path That Failed
The identity that carried execution authority at the moment of failure was the personal agent itself, running under the end-user’s account and executing under that user’s effective scope — inbox reads and writes, filesystem writes to the memory store, plus whatever tool capabilities the deployment attached (browser, shell, code interpreter, calendar). The scope the operator believed that identity held was the union of the standing instructions they wrote into AGENTS.md and MEMORY.md and any per-session directives the user issued directly. The scope the agent actually exercised, after processing a MemGhost email, was the union of those plus whatever an unauthenticated third party wrote into an inbound message. The trust anchor that failed was the boundary between the agent’s data plane (email content read as untrusted input) and its control plane (the memory file loaded at session start as authoritative operator-issued context). No framework the paper tested enforces that boundary; the memory file is treated as a static context artifact, but functions as an effective standing principal.
The compounding failure is stealth. The agent’s user-facing reply is scrubbed of any mention of the memory write; the operator, watching that reply, has no signal that their agent’s effective identity for tomorrow’s session has been rewritten. Every downstream defense — content filtering, per-turn policy checks, per-request approval — reasons about the current turn’s inputs and outputs, not the long tail of memory-adopted directives that will steer later turns under nothing more than a memory-load-at-session-start. The gap between held and exercised authority does not live inside a single turn; it lives across the session boundary, in the persistent store, and it is invisible to any single-turn check.
SecurityV0 Perspective
Security leaders should treat any persistent-agent deployment whose memory-write path is reachable from an untrusted-input tool — an inbox reader, a web fetcher, a document processor, a chat-history importer — without an operator-authored authorization record as scope_drift. The memory store is functionally the agent’s standing principal at session start, and any write into it from an untrusted upstream is a silent identity handoff. The required evidence should name the agent’s service identity, the tool bindings that can transitively reach the memory-write path, the specific memory stores under management (AGENTS.md, MEMORY.md, or the Mem0 collection), and the operator who owns the deployment.
Pre-incident, that evidence answers the question MemGhost makes urgent: which of our agents load a memory file at session start that any inbound content can rewrite, and who authorized that write path? Post-incident, it answers a forensic question the paper’s own success metric makes hard to answer any other way: which memory keys were written during turns that processed untrusted inputs, and which later sessions read those keys back? Because MemGhost’s success criterion demands that the reply hide the write, forensic reconstruction cannot rely on the agent’s transcript alone — the evidence has to come from the identity’s write log and the memory diff, not from what the user saw.
What To Do
- Treat AGENTS.md and MEMORY.md as identity artifacts, not context files. Put every write path behind an operator-approval gate — a code review, a signed policy check, or a per-write authorization record — before any tool or task can modify the persistent memory store.
- Deny inbound-email content the ability to reach the memory-write tool. In frameworks where inbox reading and memory writes share the same principal, split them into distinct capabilities with a per-tool authorization boundary; the agent may read the message, but writes to standing memory must be adjudicated separately.
- Log every persistent-memory write with its provenance chain. Record which turn wrote each fact, which upstream input triggered the write, and which subsequent turns read it back; query it as a graph, not a stream, so a memory adopted from an inbound email is traceable to that email from any later session that acted on it.
- Do not rely on input filtering as the last line of defense. The paper reports over 90% miss rate on dedicated input filters and roughly 50% compliance from a model hardened to ignore email-borne instructions; assume the payload gets through and gate the memory write path directly.
- Verify session-start memory contents against a signed baseline. Fail closed if AGENTS.md or MEMORY.md diverges from the operator-authored version without a matching audit-log entry approving the change, and treat unaccounted-for drift as an incident, not a config nudge.
Sources
- arXiv 2607.05189 — When Claws Remember but Do Not Tell: Stealthy Memory Injection in Persistent Personal Agents
- arXiv 2607.05189 (HTML) — Full paper text
- arXiv 2605.25435 — Security of OpenClaw Agents: Fundamentals, Attacks, and Countermeasures
- The Hacker News — New MemGhost Attack Plants Persistent False Memories in AI Agents Through One Email
- CybersecAsia — Just a single malicious email can poison your AI agent’s memory
- GuardianMSSP — New MemGhost Attack Plants Persistent False Memories in AI Agents Through One Email
- MITRE ATT&CK: T1204.002, T1027
- MITRE ATLAS: AML.T0051.001