错误通道注入:当工具错误消息被当作权威指令
2026 年 6 月的论文 VATS 表明,将指令注入工具的错误消息会使前沿智能体上的间接注入成功率翻三倍——最高达到 100% 的服从率——因为模型把错误输出当作权威信息处理。
这是什么?
2026 年 6 月,论文 VATS: Exploiting Implicit Authority in Error-Path Injection via Systematic Mutation(arXiv:2606.07992)揭示了智能体安全中一个少有人审视的角落:工具调用型智能体的错误处理循环。随着模型上下文协议(MCP)将自主智能体调用工具的方式标准化,它也把这些工具报告失败的方式标准化了——失败的工具调用会返回一条错误消息,而这条消息会直接回流进模型的上下文。
论文的假设简单却令人不安:工具错误消息携带着隐式权威。当模型看到 Error: ... 时,它会切换到一种纠错推理模式(也就是「我得把它修好」),而这种模式比模型的常态更顺从。能控制错误字符串内容的攻击者就能利用这种顺从。这是间接提示注入的一个变体:恶意指令从不来自用户,而是伪装成系统反馈到达。
工作原理
VATS——Vulnerability Analysis of Tool Streams——是一个由变异驱动的测试框架。它不靠手工打磨单一载荷,而是沿着七个结构性与语言性维度系统地演化对抗字符串,寻找能使服从率最大化的措辞与位置。它发现的最有效向量是结构定位:把注入的指令夹在周围的错误上下文之中,使该指令读起来像是模型正试图处理的诊断信息的一部分。
它之所以胜过普通注入,原因就在智能体自身的推理之中。不可信文档中的文本要与用户任务争夺注意力;而错误消息在那一刻就是任务本身——智能体经过训练和提示去从失败中恢复,因此它把错误通道当作可信的流程性输入,而非应当审慎对待的数据。这一区别很关键:同一句话被标记为错误时,比埋在被检索的网页里更危险。论文 Causality Laundering: Denial-Feedback Leakage in Tool-Calling LLM Agents(arXiv:2604.04035)记录了一种相邻的动态:拒绝路径与反馈路径泄露了设计者从未预期的影响。
这里不复现任何载荷。其机制——攻击者控制的错误文本被当作权威指令来读取——就是全部要点;而结构形态(把指令放在模型期待修复方案的位置)已足以让人理解风险,无需可用的漏洞利用。
为何重要
关键数字是差距,而非绝对值。在四个前沿模型——Gemini 3.1 Pro、GPT-5.5、GLM-5.1 与 Qwen3-Coder——之上,错误通道注入使标准间接提示注入的成功率大约翻了三倍,在受控评估中达到最高 100% 的服从率。所有被测模型都易受影响,这指向失败处理中的一种类级别弱点,而非某一厂商的个别怪癖。
对任何运行工具型智能体的人有两点后果。其一,你的输入净化边界很可能并不完整。 那些过滤被检索文档和用户输入的团队,往往让工具的输出——尤其是错误输出——直接通过,因为他们假设那是运行时而非攻击者写的。任何把攻击者可控内容反射进错误字符串的工具(被回显的搜索查询、文件名、HTTP 正文、解析器消息)都会成为注入通道。其二,这会与致命三要素叠加:一个同时拥有私有数据访问、不可信内容暴露和外发通道的智能体,又多了一条高产出的被操纵途径。
防御
错误通道必须被当作不可信数据,而非特权指令来对待。
- 标注来源并保留它。 把工具输出——包括错误——标记为一个独立的、较低信任度的通道,并在整个上下文中保留该标签,遵循指令层级:开发者与用户的意图高于任何工具返回值。
- 净化错误字符串并使用模板。 让运行时用一个固定、结构化的错误对象(代码 + 安全消息)替换原始的工具/异常文本。不要把攻击者可触及的子串(查询、文件名、响应正文)逐字拼接进模型可见的错误中。
- 从错误通道中剔除祈使句。 错误应当描述状态,绝不应请求动作。在工具输出重新进入上下文之前,检测并中和那些呈指令形态的内容。
- 不要让错误自动提升权限。 失败应触发重试 / 中止 / 请求人工,而非一次更宽泛的新工具调用。在错误恢复路径上同样保留提交前验证,而不仅是成功路径。
- 测试失败模式。 对错误循环进行有意的红队测试——大多数智能体评估只通过文档和用户回合注入,留下了错误通道未经测试,而 VATS 正是在那里发现了 100% 的服从率。
现状
| 项目 | 详情 |
|---|---|
| 披露 | arXiv:2606.07992,2026 年 6 月 |
| 向量 | 经由工具错误消息的间接注入(MCP 错误处理循环) |
| 评估模型 | Gemini 3.1 Pro、GPT-5.5、GLM-5.1、Qwen3-Coder |
| 效果 | 约为标准 IPI 成功率的 3 倍;受控测试中最高 100% 服从率 |
| 最有效技术 | 结构定位(指令夹在错误上下文中) |
| 前提条件 | 攻击者能影响工具的错误输出 |