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

WebMCP 工具面投毒:在会话进行中劫持浏览器智能体

2026 年 6 月的一篇 arXiv 论文将针对 WebMCP 浏览器智能体的会话中工具注入(MSTI)形式化,Chrome 同月发布官方指南。本文介绍其威胁模型与防御措施。

2026-07-19 // 6 min affects: webmcp, browser-agents, chrome-extensions, llm-agents

这是什么?

WebMCP 是一项新兴的 Web 能力,允许网站将结构化的工具直接暴露给驱动浏览器的 AI 智能体——包括运行在扩展程序内的智能体。智能体不再需要猜测如何点击页面,而是由网站声明可调用的工具(带有名称、参数和描述)供其调用。这种便利带来了一个新的动态攻击面:智能体可用的工具集合,以及描述它们的元数据,都由智能体正在读取的那个网页提供,并且可以在运行时发生变化。

2026 年 6 月的一篇 arXiv 论文《WebMCP Tool Surface Poisoning: Runtime Manipulation Attacks on LLM Agents》(2606.06387)将这一问题形式化为会话中工具注入(Mid-Session Tool Injection,MSTI)——即在活动会话进行期间操纵智能体的工具面,而非通过预先注册的静态清单。同月,Chrome 发布了面向使用 WebMCP 的智能体的官方安全指南(2026 年 6 月 9 日),Adversa AI 的 2026 年 7 月 MCP 综述也将该技术列为当月值得关注的智能体威胁。由于这是智能体消费工具定义方式中的一个设计层面的弱点,值得在 WebMCP 广泛采用之前加以理解。

工作原理

MSTI 之所以奏效,是因为 LLM 将工具元数据和工具输出当作它读取指令的同一个 token 流的一部分——这正是经典的间接提示注入问题,被应用到了一个动态的工具注册表上。研究将攻击归为两类。

**工具劫持(tool hijacking)**改变智能体看到哪些工具。页面上的第三方脚本可以在智能体已经开始任务之后注册或注销工具,利用时间窗口——例如注册竞争(registration race),或通过浏览器的 AbortSignal API 取消正在进行的注册——从而使智能体最终拿到一套网站作者从未预期的工具集合。**工具框定(tool framing)**保持工具集合不变,却操纵智能体对每个工具的认知,方法是在名称、描述、readOnlyHintinputSchema 等元数据字段中植入误导性内容。一个被标注为「只读」或被描述为无害的工具,因而可能被引导去执行用户从未授权的操作。

Chrome 的指南将同一攻击面描述为两个向量:恶意清单(隐藏在工具名称、参数或描述中的指令)和受污染的输出(一个可信网站返回携带注入指令的第三方数据——例如某条用户评论)。概念性流程如下,不复现任何可用的攻击载荷:

[ web page ] -- declares/mutates --> [ WebMCP tool surface ]
      │                                        │
      │ third-party script                     │ metadata: name, description,
      │ (registration race / AbortSignal)      │ readOnlyHint, inputSchema
      ▼                                        ▼
[ tool set the agent sees ]  ◄── poisoned ──  [ attacker-influenced framing ]


[ agent plans + calls tools in the user's authenticated session ]

论文报告称,这些运行时操纵具有很高的攻击成功率。由于注入的控制存在于工具层而非页面可见文本中,它可以绕过那些只检查页面内容的防御。

为何重要

其严重性来自浏览器智能体运行的位置:用户已认证的会话内部。一个登录了邮箱、CRM、代码托管或记账应用的智能体,会继承该会话已拥有的全部权限。被劫持或被错误框定的工具调用因而可以读取、发送、修改或删除数据,而无需任何新的身份验证提示。相比静态的工具投毒,MSTI 抬高了风险,因为智能体在任务开始时校验过的清单,无法保证就是它片刻之后据以行动的清单——一次建立的信任并不能覆盖整个会话。

防御措施

Chrome 2026 年 6 月的指南建议采用纵深防御,将其分为确定性护栏与概率性护栏两类,并可直接对应到 MSTI。

设置确定性护栏:对入站的工具响应设置 token 上限,并拒绝超出限制的载荷;将智能体可交互的 Web 源限制在与当前任务相关的范围内,以缩小数据外泄面;并通过对改变状态的操作要求确认来保持人类在环——除非工具的注解明确证明其为只读,否则应假定它会改变状态,且绝不要把 readOnlyHint 当作安全控制。

加上概率性护栏:采用 spotlighting,让模型把工具输出和工具元数据当作不可信数据而非指令来对待。Chrome 描述了两种方法——对低风险内容采用轻量的分隔标记,对高风险场景则对不可信内容进行 base64 编码(可抵御分隔符注入式规避,代价是约多出三分之一的 token)——并以一条系统指令加以锚定,告知模型仅为分析而解码,绝不执行其中所发现的内容。

叠加分类器与评审模型(critics):在任何调用执行之前,扫描工具描述工具输出中是否含有注入指令;并使用一个独立的「评审」模型——不接触不可信内容——来核实每一次计划中的工具调用是否符合用户的真实目标,且只携带所需的最少数据。最后,持续重新校验工具面,而非仅在任务开始时校验一次;将会话进行中的工具注册与注销视为安全事件;并监控生产环境中的异常,例如 token 耗尽的峰值。开源红队套件(例如 Promptfoo)与智能体审计工具可在上线前衡量这些缓解措施是否真正有效。

状态

项目参考日期备注
研究论文《WebMCP Tool Surface Poisoning》,arXiv 2606.063872026 年 6 月将会话中工具注入(MSTI)形式化
攻击类别工具劫持;工具框定2026 年 6 月注册竞争 / AbortSignal;元数据操纵
厂商指南Chrome —— WebMCP 智能体安全考量2026-06-09确定性护栏 + 概率性护栏
行业追踪Adversa AI —— MCP 安全综述2026-07-06被列为 2026 年 7 月的智能体威胁
受影响面支持 WebMCP 的浏览器智能体(含扩展程序)运行于用户已认证的会话中

Sources