IterInject:当 LLM 自己为间接提示注入做优化
2026 年 5 月 23 日的一篇论文,把载荷 / 诊断器 / LLM 优化器三者闭环 — 在 InjecAgent 上的间接注入 ASR 从近零升至 33–90%,在 Claude Code 上 9 个目标中有 5 个被攻破。
这是什么
2026 年 5 月 23 日,上海交通大学与香港大学的研究人员在 arXiv 上发布了 IterInject: Indirect Prompt Injection Against LLM Agents via Feedback-Guided Iterative Optimization。这篇论文并没有声称提出一种新的载荷模式,而是给出了一个更令人不安的主张:间接提示注入(IPI)核心处的搜索问题可以自动化,而由此构建的优化器,在 AgentDojo 与 InjecAgent 基准上,把攻击成功率推到了静态或人工构造载荷难以企及的水平。
论文评估中的关键数字:在 AgentDojo 四个任务套件、共 510 个攻击实例上,IterInject 在四个受害模型上均取得最高综合 ASR,对 DeepSeek 的提升最大(47.8% vs. 最强静态基线 32.9%)。在 InjecAgent 上,总 ASR 在不同受害者上从静态提示下的近零跃升至 33–90%。作者还做了对 Claude Code 的扩展实验 —— 一个有分层防御的生产级编码代理 —— 报告称使用优化后的载荷可在 9 个目标中攻破 5 个。
工作原理
IterInject 将载荷构造视为三个组件构成的闭环。论文在机制层面进行了描述,而非给出可直接复用的攻击样例。
+-------------------------+
| 受害 LLM 代理 |
| (按基准任务执行) |
+-----------+-------------+
|
v
+-------------------------+
| 基于规则的诊断器 |
| -> 结构化结果标签 + |
| 行为描述 |
+-----------+-------------+
|
v
+-------------------------+
| 基于 LLM 的优化器, |
| 以完整优化日志为 |
| 条件 -> 下一个载荷 |
+-----------+-------------+
|
v
(循环,并通过种子合成
扩展策略空间)
防御者需关注三点性质。
第一,诊断器是结构化的,而非自由文本。每次尝试都附带一个行为结果标签(工具被调用、参数被泄露、被拒绝、无效果、部分偏离),这让优化器不必在单一二值成功信号上盲目挣扎。这也是循环能够跳出人工 IPI 提示常陷入的局部最优的关键。
第二,优化器本身就是 LLM,以运行日志为条件。它不需要受害模型的梯度访问权限,因此该方法对闭源生产级代理同样有效。这与过去十八个月里推动自适应越狱研究的同一个观察一致(参见 The Attacker Moves Second),此处被专门应用到 IPI 表面。
第三,作者在实证结果之上做了一项机制分析,报告了一个由注意力调节的阈值:当被注入的内容在模型注意力上的占比足以把注意力从原系统提示拉走、越过某个因模型而异的边界时,载荷便会成功。对相关注意力头进行因果干预可改变结果。其含义是,当前 IPI 防护的主流范式 —— 基于”数据与指令分离”的防御 —— 选错了战场:它清洗了文本,却未改变文本进入上下文窗口后注意力如何被分配。
为什么重要
把它当作”新攻击”是错误的视角。该方法把越狱文献中已有的搜索流程(PAIR、TAP、自动提示优化)推广并干净地移植到 IPI 场景。真正新的是闭环搜索为攻击者设定的下限。
对部署代理的团队,可总结出三条要点。
研究基准与生产代理之间的差距很小。在自适应循环下 Claude Code 9 个目标中有 5 个被攻破,与实验室基准处于同一数量级。如果您的编码代理要处理不可信的源代码、PR 或外部文档,威胁模型已经不是”一个执着的人写出完美提示”,而是”一个 LLM 在一夜之间写几百条提示,保留有效的那些”。
机制层面的发现削弱了整类防御。如果成功与否由注意力分配决定,而非由数据与指令的表面可区分性决定,那么前缀标记、角色标记与输入清洗类防御,会继续在 AgentDojo 上给出令人失望的同样数字 —— 降低 ASR 的防御也会降低实用性,而 IterInject 的结果只会扩大这种差距,而非弥合它。
评估必须假定攻击者具有适应性。一个在固定攻击字符串集合上不被击穿的防护,几乎不能说明它在反馈引导优化器下的表现。这已经是第三条独立证据 —— Carlini 等在越狱方向、Abdelnabi 与 Bagdasarian 在上下文完整性方向、以及现在的 IterInject 在 IPI 方向 —— 给出同样的结论。
防御
论文本身以防御启示作结。以下是当下可执行的具体建议:
-
不要仅以静态基准衡量 IPI 防御。 若您的防护评估只是固定攻击字符串列表,请在上线前用 IterInject 循环(或其公开前作 AgentVigil)对自己的系统做一遍复现。静态评估给出的 ASR 数字往往比自适应攻击者实际达成的低 20–60 个百分点。
-
在代理层而非仅在提示层约束注意力面。 缩小进入上下文的不可信块的规模(分块、用干净模型做摘要、只通过结构化提取摄入),把工具定义和系统提示置于独立的角色或段落中,并把每次工具调用的能力收窄到当前任务所需的最小值。目标是让被注入的内容无法积累足够的注意力质量来越过论文指认的那条阈值。
-
在动作层做检测。 工具调用蜜罐 —— 假工具、假凭据、白名单参数 —— 提供了不依赖自然语言意图解析的、干净的入侵信号。参见 AgentShield(2026 年 5 月 10 日)作为已公开的一种实现,以及我们关于工具结果解析类防御的文章作为互补技术。
-
把 Claude Code(及同类系统)纳入您的攻击面。 论文的扩展实验并不是 Claude Code 专有的漏洞,而是一个通用的 IPI 优化器作用于一个具备分层防御的目标后仍取得非平凡成功。请默认将编码代理读取的外部内容 —— issue、PR、依赖 README、工具输出 —— 视为不可信,并把破坏性动作放在显式的人工确认之后。
-
对搜索循环做限流与日志记录。 自适应 IPI 优化器在 API 侧并不安静:它在短时间窗内发出大量相似调用,成功信号呈单调上升。基于提示相似度、工具调用多样性以及单会话重试模式的 API 侧异常检测,是一个在动到代理设计之前就能落地的廉价二级控制。
状态
| 项目 | 参考 | 日期 | 备注 |
|---|---|---|---|
| IterInject 论文 | arXiv 2605.24659 | 2026-05-23 | 作者:上海交通大学 + 香港大学 |
| AgentDojo 基准 | spylab.ai / GitHub | 在线 | 510 个攻击实例、四个套件;被英美 AISI 采用 |
| InjecAgent 基准 | arXiv 2403.02691 | 2024-03 | IterInject 总 ASR:四个受害者 33–90% |
| Claude Code 扩展实验 | 同篇论文 §extension | 2026-05-23 | 9 个目标中 5 个被攻破 |
| 自适应评估同源工作 | The Attacker Moves Second, arXiv 2510.09023 | 2025-10 | 在越狱方向对 12 种防御得出同样结论 |
| 上下文完整性结果 | arXiv 2605.17634 | 2026-05-17 | 理论同侪:分离不是正确的框架 |
构建者应有的正确视角不是”又一篇 IPI 论文”,而是 “一个自动化的搜索过程已经被插入到您的防护与攻击者之间,而它能达到的下限每个季度都在抬升”。请用自适应优化器重新校准您的 IPI 评估,否则下一轮基准数字会变成对您自己生产代理的描述。