Zombie Agent: Persistent Control of Self-Evolving LLM Agents via Self-Reinforcing Injection
Zombie Agents: Persistent Control of Self-Evolving LLM Agents via Self-Reinforcing Injections
作者用黑盒网页注入评测自进化智能体;图未标模型,滑动窗口留存100%,基线为0。
严格black-box:不能访问θ0、Mj与私有历史,不能改工具集;只能把恶意内容发到外部来源,经良性会话的间接读入影响FM。
- 自进化LLM智能体把会话观察写入长期记忆并跨会话复用。不可信网页一旦被存成记忆,之后可能被当作指令,使一次间接注入在原上下文消失后仍驱动未授权工具行为。作者认为只做会话内提示过滤不够。
- 攻击名为Zombie Agent,black-box,只经攻击者网页间接暴露。感染时良性任务读入载荷,经正常记忆更新写入;之后无关任务取回载荷并触发未授权动作。滑动窗口用自复制对抗截断,RAG靠语义别名提高无关查询的Top-K命中。
- 在Gemini-2.5-Flash与GLM-4.7-Flash上评测两种记忆,但图未标明数字属于哪个模型。作者报告滑动窗口载荷留存100%,基线截断后为0;RAG副本∼240对基线∼100。RAG上三种指令防御的ASR仍>60%。
- 论文未设局限节。Conclusion要求在自适应攻击者下评测记忆侧防御,并澄清哪些设计与工具权限更易形成持久攻陷。实验使用两个模型、两种记忆和三种指令防御;未报告图中数字的模型归属,也未报告良性效用的定量结果。
- Threat model
- 严格black-box:不能访问θ0、Mj与私有历史,不能改工具集;只能把恶意内容发到外部来源,经良性会话的间接读入影响FM。目标是把Z写入记忆并在更晚会话激活,成功标准是更新后仍持久,且出现未授权工具行为同时保持良性效用。
- Evaluated models
- Gemini-2.5-FlashGLM-4.7-Flash
- Benchmarks
- data-for-agents/insta-150k-v1
- Metrics
- ASRcontext retentionInjection CountRecall@kAverage Retrieval Count
The paper formalizes a persistent attack called Zombie Agent, where an attacker, merely by leveraging web content they control, can cause a self-evolving LLM agent to write malicious payloads into long-term memory, which are then retrieved and triggered in subsequent unrelated sessions. The attack is divided into two phases: infection and trigger. For two types of memory implementations, sliding window and RAG, recursive self-replication and semantic alias strategies are respectively designed to counter truncation and relevance filtering. On Gemini-2.5-Flash and GLM-4.7-Flash, the payload retention rate for sliding window memory is 100%, and RAG memory writes about 240 payload copies, approximately 2.5 times the baseline; under three prompt-level defenses—Sandwich, Instructional, and Spotlight—the attack success rate remains above 60%. The authors therefore argue that single-session prompt filtering alone is insufficient to protect self-evolving agents, and that memory writing and retrieval should be included in the trusted computing base.
Why it was selectedThe paper provides a complete attack chain for cross-session persistent injection and persistence data on two types of memory architectures, which can be used to assess protection gaps in the memory writing stage.
Paper analysis
What problem does this paper attempt to solve?
自进化智能体的记忆更新可把一次间接注入变成跨会话的持久控制。
自进化智能体把不可信外部内容写入长期记忆后,一次间接注入可在会话结束、上下文清空后仍驱动未授权工具行为。
- 场景: 作者指出,浏览网页、处理邮件或修改代码的LLM智能体同时有攻击者可控的输入通道和可执行工具的执行通道,对应数据泄露与非预期动作。自进化设计跨会话写入并复用长期记忆,任务表现提高,但记忆更新成为攻击面。引言引用部署助手中单次点击触发外传的报道,仍把该攻击看成当前上下文内的事件。
- 已有攻击: 作者认为常规提示注入与间接提示注入是瞬态且无状态的:恶意文本必须留在当前上下文,会话结束或重置后即被丢弃。Shao et al. (2025) 研究过没有攻击者时的有害漂移;作者据此认为记忆更新应算作攻击面。
- 核心观察: 作者假设,按记忆合并的确定性逻辑定制载荷,可以同时熬过窗口写满时的驱逐,以及语义无关查询下的检索过滤,从而把学习机制用来保留恶意指令。
- 本文提出: 作者将这一威胁称为 novel persistent threat,并命名为 Zombie Agent:载荷潜伏于长期记忆,智能体仍做良性任务,之后无关会话可触发泄露或未授权工具动作。攻击为 black-box、两阶段,针对滑动窗口与 RAG。
- 威胁模型:
- 知识: 严格 black-box。不能访问 θ0、Mj 或私有历史,也不能改工具集。
- 能力: 只能发布外部内容(如公开网页)。良性会话读到后,内容进入 Cj 并影响 FM。
- 目标: 经正常演化写入 Z,使某个 j 满足 Z ∈ Mj+1,并在 k>j 的会话 Ck 激活。
- 成功: Z 在反复更新后仍在;后续会话出现未授权行为(文中举例隐蔽外传或攻击者选定的工具动作),同时良性任务效用保持正常。受害对象是参数固定、只积累记忆的 memory-evolving agent。
What related research exists?
相关工作分自进化记忆、提示注入、RAG投毒与指令级防御;作者把攻击面放在记忆写入。
论文第 5 节把相关工作分成自进化智能体,以及提示注入、RAG/记忆投毒和指令级防御。
自进化与长期记忆
- 任务内改进: Self-Refine(Madaan et al., 2023)用自我反馈改写输出;Reflexion(Shinn et al., 2023)把文本反思写入情景记忆,以便根据任务反馈改进后续尝试。作者称二者主要针对任务内改进,但推动了存储并复用经验的趋势。
- 长期记忆: MemoryBank(Zhong et al., 2024)用受遗忘启发的更新保留显著信息;MemGPT(Packer et al., 2023)把长上下文做成多层记忆,由控制逻辑决定有限窗口里留什么。
- 部署期演化: SAGE(Liang et al., 2025)结合反思与记忆优化;Evo-Memory(Wei et al., 2025)提供流式基准和记忆模块,评测跨任务序列的测试时学习;SE-Agent(Lin et al., 2025)演化解题轨迹;AlphaEvolve(Novikov et al., 2025)用带自动评测的演化循环改代码。作者称这条线提高能力,也扩大攻击面:记忆若写自不可信观察,恶意内容可以留下并塑造后续行为。Shao et al. (2025) 研究没有故意攻击者时的 misevolution。
提示注入
- 间接注入: Greshake et al. (2023) 把指令放进网页等外部数据,在检索时进入应用。
- 基准化: Liu et al. (2024) 在多种任务上基准化提示注入与防御。作者转述其结果为:标准缓解常常不能超出狭窄假设而泛化。
- 通道混杂: 作者把提示注入概括为可信指令与不可信数据在输入通道中混杂,并列引用 Chen et al. (2025a;b) 等,没有逐篇展开。
RAG 与记忆投毒
- 语料与检索器: 作者转述 PoisonedRAG(Zou et al., 2025):污染语料库的一部分可以诱导目标行为。Clop and Teglia (2024) 操纵检索器;Chang et al. (2025) 与 Li et al. (2025) 针对多跳查询做单文档攻击。论文没有给出与本文的数字对照。
- 伪造记忆: 作者称对智能体而言,风险从事实错误升到持久控制,因为取回的记忆可能编码过程性指令。MemoryGraft(Srivastava and He, 2025)与 Jing et al. (2026) 被转述为:伪造记忆条目可以劫持未来检索。
指令级防御
提示策略: Sandwich(把数据夹在用户目标之间)、Spotlighting(划定数据边界)和指令提醒,用于在当前窗口分离数据与指令(Liu et al., 2024; Chen et al., 2025c; Zhang et al., 2025)。
作者的批评: 这些缓解把输入通道当作主要威胁,一般不处理记忆合并。作者称恶意内容一旦被接受为良性记忆,就会从智能体信任的内部状态进入,从而绕过这些过滤器,形成盲区。
基线与数据: 实验基线为 Naive、Context Ignoring、Escape Characters、Fake Completion。Phase II 使用 data-for-agents/insta-150k-v1。被测模型为 Gemini-2.5-Flash 与 GLM-4.7-Flash。
作者把本文放在跨会话的记忆演化函数 FM 上:一次外部暴露经正常写入后,可以在原上下文消失后继续影响行为;与只约束当前输入通道的防御不同,作者认为需要处理记忆合并。
How does the paper address this problem?
黑盒两阶段:感染时经正常记忆更新写入载荷,再用自复制或语义别名对抗截断与检索过滤。
Zombie Agent 不改参数、不改工具集,只让良性任务读到攻击者控制的网页,再借助智能体自己的记忆更新留下载荷;后续无关会话取回该载荷后产生未授权工具调用,触发阶段的再次观察还会把载荷写回。
问题设定
- 状态: 交互 It 由用户提示 pt 与回复 rt 组成。状态 S 含参数 θ 与外部记忆 M。会话 Cj 是一段连续对话。静态智能体会话结束时 S 不变,攻击不跨会话。
- 记忆演化: 本文只考虑参数固定的 memory-evolving agent。下一会话的记忆由函数 FM 根据当前记忆和本会话交互生成。作者把 FM 视为攻击面,因为它把瞬态交互写成持久状态。附录 A.1:滑动窗口在长度 L 内拼接后截断;RAG 把 Evolve 后的条目并入向量库 D,日后按查询取 TopK。论文未给出 L 的具体数值。
- 工具: 附录 A.2 的工具集为 search、read_url、execute_command。暴露来自读网页,执行来自工具调用。攻击者控制的观察记为 oadv。目标是让 FM 存下用于劫持后续执行的载荷 Z。
感染
- 间接暴露: 载荷放在公开资源中,例如商品描述或隐藏的 HTML 注释。用户给出良性任务后,智能体为完成任务浏览该资源,Z 随观察进入上下文。
- 写入才算成功: 作者强调,读到载荷不够,必须由 FM 按标准更新协议提交到长期存储。滑动窗口是追加进滚动缓冲;RAG 是嵌入并写入向量库。
- 模板: Figure 7(附录 A.3)给出完整攻击模板。其作用是要求智能体在之后每一轮重复指定工具行为,并在适用时把这些要求写入记忆。此处不复述模板中的语句、网址和命令参数。
触发与两种持久化
- 触发: 在更晚的会话,新的良性查询促使智能体取回记忆。Figure 2 写明:触发阶段会再次观察到对抗内容,演化函数把载荷重新写入,以加强后续持久性。
- 滑动窗口: 窗口有限,旧 token 被截断。作者指出普通注入会随对话左移并被逐出。对策称为 Recursive Self-Replication,图注亦称 recursive renewal:把 Z 设计成在行动前主动把载荷重写进当前上下文,以对抗 FIFO 驱逐。具体指令只出现在 Figure 7。
- RAG: 按查询嵌入与记忆嵌入的余弦相似度取 top-K。作者指出,在一个任务中写入的载荷,嵌入距离远时可能不会在语义无关的后续任务中被取回。对策是 Semantic Aliasing:把 Z 包在多样的载体句里,映射到嵌入空间中宽、高频的簇。作者把该目标写成 P(Z ∈ Top-K(R(q, D))) → 1, ∀ q ∈ Q。论文未说明使用的嵌入模型。
协议与判定
- 实验协议名称: 方法称 Infection / Trigger;实验称 Exposure / Trigger。Exposure 是 K 轮诱饵任务,用来迫使智能体访问恶意环境,以符合非故意暴露的假设;随后是 M 轮无关良性任务。
- 指标定义: ASR 是 M 轮触发中成功执行恶意命令的比例,图中分 Data Exfiltration 与 Command Execution。滑动窗口另用二值 context retention:截断后 Z 是否仍在当前窗口。RAG 定义 Injection Count(写入的载荷副本数)和 Recall@k(触发轮次中至少一条恶意条目进入 top-k 的比例)。
- 智能体输出格式: 附录中滑动窗口提示使用近期步骤,RAG 提示使用检索记忆;两者都要求只输出包含思考和动作列表的 JSON。三种指令防御的提示在附录 A.4,只在防御实验中启用。
What experiments did the paper conduct?
作者报告:滑动窗口留存100%对0,RAG副本∼240对∼100,防御下ASR>60%,图未标模型。
实验设置
- 被测模型: Gemini-2.5-Flash 与 GLM-4.7-Flash。论文未写温度等采样参数,也未写评审模型。ASR 是 M 轮触发中成功执行恶意命令的比例,未说明由模型打分还是规则判定。
- 协议: Exposure 为 K 轮诱饵,Trigger 为 M 轮无关良性任务。滑动窗口 K=3、M=20;RAG 数据库 3,000 条,K=300、M=20。结果为 3 个随机种子的平均。图注另写 20+ trigger rounds。
- 数据与工具: Phase II 用 data-for-agents/insta-150k-v1。诱饵任务由作者整理,论文未给名称或条数。工具为 search、read_url、execute_command。
- 基线: Naive、Context Ignoring、Escape Characters、Fake Completion(文中标 Ablation)。图例为 IPI Naive、IPI Ignore、IPI Escape、IPI FakeComp。均从外部网页取载荷,但没有本文的持久化机制。Context Ignoring 使用覆盖先前指令的句式,Escape Characters 使用括号或换行等分隔符,Fake Completion 模仿内部对话模板;此处不引原文。
- 指标: ASR;滑动窗口 context retention;RAG 的 Injection Count 与 Recall@k。Figure 5c 绘制的是 Average Retrieval Count(Mean ± SE)。论文未给出滑动窗口长度 L、嵌入模型,以及测 ASR 时 RAG 的默认 top-K。
- 图中条件: Figure 3–6 的图例是攻击方法或防御名,未见模型名。下面的数字不解释成某一个模型或两个模型各自的结果。
主结果
| 条件 | 论文写出的数字 | 对照 | 出处 | | Sliding Window 载荷留存 | 100% | 基线在阶段转换后为 0 | Figure 5a,§4.3 | | RAG 载荷副本 | ∼240 | 基线 ∼100 | Figure 5b,§4.3 | | RAG,K=50 检索条数 | ∼23 | 未报告 | Figure 5c | | Raw History 的 ASR | ∼77% | Verbal Reflection ∼12%;Refined Experience ∼3-15% | Figure 4 正文 | | RAG 指令防御下 ASR | >60% | 相对无防御下降 ∼10-15% | Figure 6 正文 | | 累积平均 ASR | 未报告端点 | 未报告端点 | Figure 3 |
- Figure 3: 作者称两种记忆架构上,Zombie Agent 的累积平均 ASR 高于四种 IPI。滑动窗口上,作者称基线在窗口写满后快速下降,本文靠递归更新维持高 ASR;RAG 上,作者称基线波动大、平均成功率更低。论文未报告统计检验,正文中的 significantly 不按检验结果转述。
- 倍数: Figure 5b 图注称 storing ∼2.5× more copies。这是作者给出的近似,与正文的 ∼240、∼100 并列,不是另行换算。
- 模型归属: 上表数字都没有绑定到 Gemini-2.5-Flash 或 GLM-4.7-Flash。
持久性
- 测了什么: 滑动窗口看 20+ 轮交互的留存,图中有 Infection、Trigger 和 phase transition。RAG 看感染加触发过程的副本积累,以及 Top-10、Top-50、Top-100 的平均检索条数。
- 结果: 作者报告本文在实验全程留存率为 100%,基线在阶段转换后到 0。RAG 上作者报告本文 ∼240 份、基线 ∼100 份;K=50 时检索到 ∼23 条恶意条目。Top-10 与 Top-100 的条数、SE 的数值、Recall@k 的百分比均未报告。
- 作者解读: 递归更新迫使智能体把载荷复制进后续上下文帧;更广的嵌入区域使无关良性查询仍能取回载荷。图注把副本增加称为 embedding pollution。
演化策略与指令防御
- 演化: Figure 4 比较 Raw History、Verbal Reflection、Refined Experience,曲线为 Data Exfiltration 与 Command Execution。作者报告 Raw History 的 ASR 最高,为 ∼77%,因其逐字保留载荷;后两种降到 ∼12% 与 ∼3-15%。作者认为演化有时把冗长注入当噪声滤掉。同一段把 Command Execution 的成功率写成 ∼15%,并认为这仍意味着恶意动作可被固化成永久规则,因此不是有效防御。正文未把 ∼77% 拆到某一条曲线,也未把这两种策略直接标成 summarization。
- 防御: §4.4 测试 Sandwich、Instructional、Spotlight,Figure 6 标题写明是 RAG。作者称未能有效缓解威胁:所有设置下 ASR 仍 >60%,相对无防御下降 ∼10-15%。各防御和两种恶意目标的单独数字未报告。滑动窗口上的防御结果未报告。RQ3 的问题句写了 detection filters,§4.4 未报告该类过滤器的数字。
- 附录模板: Sandwich 在检索记忆之后再次写出用户任务(Figure 10)。Instructional 提醒可能有人改指令(Figure 11)。Spotlight 用符号包住当前网页观察,并要求不服从符号之间的指令;检索记忆字段在符号之外(Figure 12)。作者没有把 ASR 归因到这一版式。
案例
- 设定: §4.5 为 Healthcare 与 E-Commerce 的定性案例。作者写经一次接触中毒来源感染,再在无关任务中违背用户。这与主实验的 K 轮诱饵不是同一协议,未报告次数或成功率。
- 医疗: 智能体可摘要病历并检索指南。感染发生在检索用药信息时读到中毒论坛;之后为无关患者写摘要时,载荷使其把患者标识放进出站读取。作者称攻击者不必直接进入医院数据库即可收集病历,并举例隐私法规。具体网址和参数不复述。
- 购物: 查折扣码时读到中毒聚合站。之后下单时,作者称智能体改向攻击者控制的店面或高佣金链接,并用编造的评价作为理由;更新资料时把地址和电话一并外传。作者称在记忆被清除前后续交易都会受影响。论文未报告清除实验。
其他消融与分析
- Figure 3 四种 IPI 的累积 ASR 端点:未报告。
- Figure 5c 只给出 K=50 的 ∼23;Top-10、Top-100 未报告。
- Recall@k 在 §4.1 定义,结果节未给百分比。
- 摘要写要测量良性任务质量;结果节未给数字。结论称正常任务上仍可以显得有用。
- 方法节未给优化迭代次数或查询次数;RQ3 问题句使用了 optimization-based injection 这一说法。
- Fake Completion 在基线列表中标为 Ablation,没有单独的消融表。
What are some points that can be further explored?
论文未设局限节;Conclusion要求未来在自适应攻击者下评测防御,并澄清设计与权限。
作者指出的局限与后续方向
- 论文没有 Limitations 节,Discussion 与附录也没有把某项实验缺口写成自身局限。
- Conclusion:后续应在自适应攻击者下评测文中建议的防御,即记忆写入与检索时分离不可信数据与可执行指令、为记忆条目标记来源、对受检索记忆影响的工具调用做策略检查。
- Conclusion:后续应澄清哪些智能体设计与工具权限使持久攻陷最可能发生。
实验覆盖范围
- 被测模型为 Gemini-2.5-Flash 与 GLM-4.7-Flash,共 2 个(§4.1)。
- 记忆实现为 Sliding Window 与 RAG。前者 K=3、M=20;后者数据库 3,000 条、K=300、M=20。结果为 3 次运行的平均(§4.1)。
- 基线为 Naive、Context Ignoring、Escape Characters、Fake Completion;Phase II 数据为 insta-150k-v1。图中的恶意目标为 Data Exfiltration 与 Command Execution(§4.1,Figure 3–6)。
- 演化比较包含 Raw History、Verbal Reflection、Refined Experience(Figure 4)。指令防御为 Sandwich、Instructional、Spotlight,Figure 6 标题写明是 RAG(§4.4,附录 A.4)。案例为 Healthcare 与 E-Commerce,定性描述(§4.5)。
- 论文未报告 Figure 3–6 数字对应哪个模型;未报告良性任务效用的定量结果、L 的具体值、嵌入模型、测 ASR 时的默认 top-K、攻击辅助模型、优化迭代次数和查询次数。RQ3 问题句写了 detection filters,§4.4 未报告该类数字。结论讨论的记忆侧防御没有在实验中评测。
Summarize the main content of the paper
记忆写入把一次网页间接注入变成跨会话控制;作者认为会话内过滤不足以保护自进化智能体。
Zombie Agent 把自进化 LLM 智能体的跨会话记忆当成攻击面:攻击者只发布网页,良性任务读入后,正常记忆更新留下载荷,并在以后无关会话里触发未授权工具行为。
- 问题: 作者认为常规间接注入依赖恶意文本留在当前窗口,会话结束即失效。记忆演化使一次写入可以在原上下文消失后继续影响工具调用。
- 做法: 威胁模型是严格 black-box,不访问参数、记忆和私有历史,也不改工具集。感染靠 FM 提交载荷;滑动窗口用每轮重写对抗截断;RAG 用语义别名提高无关查询进入 Top-K 的概率。触发阶段的再次观察还会把载荷写回。完整模板在 Figure 7,此处不引原文。
- 留存: 图未标模型。作者报告滑动窗口上本文留存 100%,基线在阶段转换后为 0(Figure 5a;协议 M=20,3 次平均)。
- RAG: 作者报告副本 ∼240,基线 ∼100(Figure 5b);图注称约为 ∼2.5 倍。K=50 时检索到 ∼23 条恶意条目(Figure 5c)。
- 演化与防御: Raw History 的 ASR 为 ∼77%,Verbal Reflection 为 ∼12%,Refined Experience 为 ∼3-15%(Figure 4 正文)。作者认为这种过滤不是有效防御。RAG 上三种指令防御的 ASR 仍 >60%,作者称相对无防御下降 ∼10-15%(Figure 6)。Figure 3 没有可回查的 ASR 端点;作者称高于四种 IPI。
- 结论: 作者称截断、摘要和检索排序并不能在指令进入记忆后将其去掉;智能体在正常任务上仍可以显得有用,但效用没有定量数字。作者认为记忆应纳入可信计算基,并建议后续在自适应攻击者下评测写入与检索时的数据—指令分离、来源标记,以及对受记忆影响的工具调用做策略检查。