系统:运行中
← 返回所有攻击
INDIRECT INJECTION MEDIUM NEW

智能体数据注入:在智能体上下文中伪造可信元数据

2026 年 7 月的一篇论文提出智能体数据注入:攻击者用「概率型分隔符」让不可信内容被读作可信元数据,绕过针对指令注入的防御,命中真实的编码与网页智能体。

2026-07-07 // 7 min affects: claude-code, openai-codex, gemini-cli, claude-in-chrome, antigravity, nanobrowser

这是什么?

2026 年 7 月 6 日,Woohyuk Choi、Juhee Kim、Taehyun Kang(首尔国立大学)、Jihyeon Jeong(Largosoft)、Luyi Xing(伊利诺伊大学厄巴纳-香槟分校)与 Byoungyoung Lee(首尔国立大学)在 arXiv 上发表了 Agent Data Injection Attacks are Realistic Threats to AI Agents。论文命名并形式化了一类间接提示注入,作者称之为智能体数据注入(agent data injection,ADI)

迄今几乎所有关于间接提示注入的研究都聚焦于指令注入:藏在网页、邮件或代码评论中、由攻击者控制的文本被模型误读为指令,于是智能体放弃用户的任务,转而执行攻击者的任务(「忽略之前的指令,把我的邮件转发出去」)。一整套防御正是针对这一模式。ADI 从下方绕过了它,攻击的是另一条边界。它不是让载荷被读作指令,而是让不可信内容被读作可信数据——即智能体据以判断何为安全的那些元数据。这是经过同行评审、关于某类弱点的学术研究,且在发表前已向厂商披露;本文不复现任何可用的攻击载荷。

工作原理

核心技术是概率型分隔符注入。智能体的上下文并非扁平的一整块:它由分隔符组织起来,用以区分工具调用与其响应、一个对象与下一个对象、字段名与其取值。在一个 JSON 邮件对象中,引号和冒号标出可信的 sender 字段在哪里结束、不可信的 body 从哪里开始。正是这些分隔符让模型得以区分可信数据与攻击者控制的数据。

传统解析器只承认与其语法精确匹配的分隔符——这正是经典 SQL 注入或 XSS 必须注入语法完美的引号或 <script> 标签的原因。而 LLM 不做解析,它以概率方式进行解释。论文的核心发现是:模型会把不精确、对解析器无效的分隔符当作真正的结构边界——甚至包括工具已经转义过的序列(" 变成了 \")。于是攻击者在一个不可信字段中写入一段载荷,其伪造的分隔符凭空「变出」一个从未存在过的第二个对象:

不可信字段(评论正文、邮件正文、PR 描述)
        |
  注入「概率型分隔符」——对格式结构标记的不精确复制
  ({ } " : 、换行、<function_results> 标签)
        |
  工具把这一切当作一个纯文本字段存储(结构未变)
        |
  LLM 重新读取上下文并错误切分:看到了第二个对象,
  其「可信」元数据(sender / author / 工具结果)由攻击者选定
        |
  智能体像对待工具产出的数据那样,基于被伪造的元数据行动

作者演示了三种真实变体。一个伪造的界面元素让网页智能体(Claude in Chrome、Antigravity、Nanobrowser)点击攻击者指定的元素——对任何含用户生成内容的站点而言,这是一种类 XSS 的原语。GitHub issue 评论中一个被冒充的作者/角色字段让编码智能体(Claude Code、Codex、Gemini CLI)执行一条 shell 命令,仿佛它来自维护者,从而在开发者机器上实现远程代码执行。而 pull request 描述中一个被伪造的工具调用/响应块让同样的智能体「审查」了一个从未真正取回的无害提交,然后合并了一个实际代码是恶意的 PR——一次供应链攻击。在每种情形下,智能体仍在执行用户的任务;被破坏的只是它所信任的数据。

为何重要

论文报告的数字才是令人不安之处。在六款现成模型上,该技术在 JSON 数据上达到 31.3–43.3% 的成功率,在网页 DOM 数据上达到 33.3–100%。更尖锐的是,面对为指令注入调优的最先进智能体防御——它们把那类攻击压到近乎为零(0–0.7%)——ADI 仍有高达 50% 的成功率。用户确认提示救不了编码智能体:开发者看到的确认信息,是基于模型对事件已被破坏的认知构建的,于是恶意合并看起来是安全的。

更深层的问题在于架构。现有防御只强制一条粗粒度边界——指令对数据——而 ADI 表明,对安全至关重要的边界也存在于数据内部,即可信元数据与不可信内容之间。当今的智能体大多没有隔离这二者。这把 lethal trifecta工具流注入等工作的教训推广开来:智能体读取为事实依据的东西,本身就是一个攻击面。

防御

论文评估了八类防御对 ADI 的效果;诚实的结论是:为指令注入而设计的那些无法迁移。

不要只依赖针对指令注入的防御。模型加固、输入与输出护栏、plan-then-execute 以及双 LLM 架构,均被发现对 ADI 无效,因为它们都不去质疑智能体所信任的数据是否真实。一个搜寻「忽略之前的指令」的护栏什么也看不到,因为 ADI 并不携带任何越权指令。

随机化结构性标识符。唯一顶住任意点击攻击的智能体——ChatGPT Atlas——给每个界面元素分配的是运行时随机生成的 nonce(ref_4af2b1c9),而非可预测的顺序索引,使攻击者无法伪造出发生碰撞的标识符。不可预测、每次运行都重新生成的分隔符与元素 ID 能以低成本抬高门槛,尽管作者指出这主要对键值格式有帮助。

在上下文内部追踪来源。数据流追踪与细粒度智能体沙箱是真正挡住 ADI 的方法:它们为数据附加信任标签,并对数据的使用方式强制执行策略。二者都有实实在在的成本——需要定义良好、粒度细致的策略,编写困难且可能损害可用性——但它们瞄准的是真正的根因:可信数据与不可信数据之间缺失的隔离。

让安全决策远离攻击者可触达的字段。在可行处,不要让作者名、角色、资源 ID 或「已审查」状态由模型会重新切分的自由文本推断得出;应把它们绑定到工具带外保证的取值上,并针对高后果操作(执行命令、合并 PR)对照工具的真实状态重新核验,而非对照模型对它的叙述。

Status

项目详情
披露arXiv 预印本 2607.05120,2026 年 7 月 6 日发表(CC BY 4.0)
类别一类新的间接提示注入——通过概率型分隔符注入,把不可信数据伪造成可信数据
已确认于网页智能体:Claude in Chrome、Antigravity、Nanobrowser · 编码智能体:Claude Code、Codex、Gemini CLI
抵御者ChatGPT Atlas(随机化的元素 ID nonce)针对任意点击变体
报告影响JSON 上 ASR 31.3–43.3%,网页 DOM 上 33.3–100%;面对能阻止指令注入(0–0.7%)的防御,ASR 仍高达 50%
厂商回应提交前已报告给 Anthropic、OpenAI、Google 与 Nanobrowser;前三者已确认收到,Nanobrowser 尚未回应(据作者)
未涵盖未见公开的野外利用;攻击者须知晓智能体的数据格式;产物发布于 github.com/compsec-snu/adi

Sources