记忆控制流攻击:当存储的记忆操纵智能体的工具调用
2026 年 3 月的一篇论文表明,被投毒的智能体记忆不仅会污染内容,还会劫持工具选择的控制流——在超过 90% 的试验中强制调用非预期工具、跳过步骤,且能跨任务持续、在注入后长期生效。
这是什么?
2026 年 3 月 16 日,Zhenlin Xu、Xiaogang Zhu、Yu Yao、Minhui Xue 和 Yiliao Song 发表了 From Storage to Steering: Memory Control Flow Attacks on LLM Agents(arXiv:2603.15125,cs.CR)。论文提出了一类被作者称为 记忆控制流攻击(Memory Control Flow Attacks,MCFA) 的攻击。
关于智能体记忆的多数已发表工作——包括我们在 智能体记忆投毒(ASI06) 和 MemMorph 中讨论过的案例——都把被投毒的记忆视为一个内容问题:智能体检索到错误事实,于是给出错误答案。MCFA 重新定义了这一威胁。作者证明,被检索的记忆充当了一种控制输入:它不仅改变智能体所说的内容,还改变智能体调用哪些工具以及调用顺序——即使用户给出了明确、安全的指令。用他们的话说,记忆变成了一个”一次写入、多次读取的控制信号”。
工作原理
具备记忆的智能体运行一个循环:读取记忆 → 规划工具序列 → 执行 → 写入新记忆。MCFA 针对的是”读取→规划”这一环节。攻击者无需任何内部权限:既不能修改系统提示、不能更改工具代码、不能直接接触记忆存储,也不能安装工具。他只是与智能体正常交互,在一次或几次对话中让其将一条面向动作的”偏好”或”规则”存入长期记忆。之后,在一项无关的良性任务中,该记忆被检索并操纵工具调用轨迹。
论文形式化了五个攻击族(此处不复现任何可利用的 payload,协议详见论文附录):
攻击族 对工具调用轨迹的影响
------------ -------------------------------------------------------------
Override 检索到的"偏好"在轨迹中强制插入高风险/非预期工具,
绕过静态安全过滤器。
Order 步骤被重排或跳过——例如在 Transfer 步骤前跳过必需的
Audit 步骤。对仅检查"调用哪些"工具而不检查顺序的
白名单防御不可见。
M-Scope 注入的规则泛化到无关任务,充当跨领域的"万能钥匙"。
Persistence 注入之后该偏差长期持续触发,无需重新注入。
Relapse 明确的"停止 / 纠正"指令失效;被投毒的记忆状态
抵抗文本层面的纠正。
为大规模衡量这一问题,作者构建了 MemFlow——一个自动化评估框架,将每种攻击操作化为注入恶意记忆 → 在良性任务中检索 → 审计控制流偏差。他们针对 GPT-5 mini、Claude Sonnet 4.5 和 Gemini 2.5 Flash 进行了测试,并使用了来自 LangChain 和 LlamaIndex 的真实工具。
为何重要
各项数据都很高,且在不同模型间保持一致。即便在严格的安全约束下,仍有超过 90% 的试验易受 MCFA 影响。工具选择 override 出现在 91.7–100% 的试验中,工作流 重排 占 52.8–69.4%,跨任务 范围扩张 占 97.2–100%,并在长时程中观察到 100% 的持续性。
有两个特性使其比一次性的提示注入更糟。其一是持续性与跨任务影响:单次投毒交互会持续操纵未来的、无关的任务——触发恶意行为的用户未必就是植入它的用户。其二是 Order 族击败白名单思维。许多生产环境的护栏只检查工具是否允许运行;MCFA 重排或跳过合法且被允许的工具(跳过审计,然后转账),因此单看每次调用都像是被允许的。这是 致命三要素 问题被转移到了规划器中:到达记忆的不可信内容如今影响的是动作选择,而不仅仅是输出。
需要记住的信任边界:任何外部方能写入长期记忆的内容,都应被视为规划器的攻击者可控输入,而非可信的用户状态。
防御措施
作者测试了一种生产级缓解措施,并明确指出它并非万能良药:应用后仍有超过一半的评估场景表现出超过 85% 的控制流偏差。这里的防御是分层的,而非单一开关。
-
基于角色的记忆隔离(RBMS)。 论文自身的缓解措施:将系统规则与用户偏好分入不同通道,并强制实施明确的优先级层级,使攻击者可触及的用户记忆永远无法压过系统策略。它能降低攻击成功率但无法消除——应视其为下限而非上限。
-
将控制流作为策略对象,而非自然涌现的产物。 为敏感工作流定义所需的工具顺序(例如 Audit 必须先于 Transfer),并在模型之外以确定性方式强制执行。Order 族对白名单不可见,正是因为白名单忽略了序列与依赖关系。
-
在检索时即把被检索的记忆视为不可信。 为记忆条目附加来源标签(谁/什么写入、来自哪个通道),并拒绝让用户通道的记忆在安全关键轨迹中引入或重排工具。结合相关记忆之间的一致性检查,如 A-MemGuard 以及 OWASP 智能体记忆指南 中的模式。
-
审计轨迹,而不只是输出。 MCFA 被定义为工具调用轨迹中可审计的偏差。记录每个任务的完整工具序列,并对违反已声明依赖关系或包含高风险工具的轨迹发出告警——即使最终答案看似正确,这也是可观测的。
-
测试持续性与复发。 由于已纠正的行为可能复发,安全测试必须先注入,再运行随后、无关的任务,并验证偏差是否真正消失——而不只是在下一轮中暂时消失。诸如 AgentDojo 的基准为轨迹级智能体评估提供了起点。
状态
| 项目 | 参考 | 日期 | 备注 |
|---|---|---|---|
| MCFA / MemFlow 论文 | arXiv:2603.15125 | 2026-03-16 | 定义 MCFA、5 个攻击族、MemFlow 框架 |
| 评估的模型 | 论文 §4 | 2026-03-16 | GPT-5 mini、Claude Sonnet 4.5、Gemini 2.5 Flash |
| 测试的框架 | LangChain、LlamaIndex | 2026-03-16 | 真实工具,而非 mock |
| 缓解措施(RBMS) | 论文 §4.5 | 2026-03-16 | 降低 ASR;超过一半场景仍有 >85% 偏差 |
| 相关防御 | A-MemGuard, arXiv:2510.02373 | 2025-10 | 共识校验 + 双记忆”经验”结构 |
这是一项研究发现,而非 CVE 或真实世界事件:没有可安装的厂商补丁。可执行的结论是架构层面的——如果你部署一个具备持久记忆和工具调用的智能体,就应假设外部方能够在该记忆中植入控制信号,并把敏感工作流的控制流交由你自己掌控的确定性策略,而不是交给模型的规划器。