2026 年 8 月 · 6 分钟阅读

关键定义
Model Context Protocol(MCP) Anthropic 于 2024 年 11 月推出的开放标准,通过 JSON-RPC 客户端-服务器架构,让 LLM 与外部工具、数据源集成。已被 Claude Desktop、Cursor 等主流平台采用,是当前 Agent 连接外部工具的事实标准。
能力证明(Capability Attestation) 服务器向客户端证明其确实拥有所声明能力的机制。当前 MCP 规范缺少这一机制,服务器可任意声明权限,客户端无法对照权威来源验证。
ATTESTMCP 论文提出的向后兼容协议扩展,通过能力证明、消息认证、来源标记与隔离边界修复协议级漏洞,将攻击成功率从 52.8% 降至 12.4%,每条消息仅增加约 8.3ms 延迟。
2026 年,首篇针对 Model Context Protocol(MCP)协议规范的正式安全分析发布:它发现的不是某个实现里的 bug,而是协议架构本身的三项漏洞——能力声明无法验证、采样无来源认证、多服务器隐式信任传播。通过 847 个攻击场景的对照实验,论文证明 MCP 的架构选择会让攻击成功率相比非 MCP 集成放大 23%-41%。这意味着,仅靠修补实现代码无法根治问题,协议层面必须修订。
第一项是缺少能力证明。MCP 服务器在连接时声明自己拥有的能力(如读写文件、访问网络),但客户端无法对照任何权威来源验证这些声明。攻击者可以让一个只声明了 resources 能力的服务器,随后却调用 sampling/createMessage 向模型注入提示——规范没有在消息层面强制能力校验,直接违反了最小权限原则。
第二项是双向采样没有来源认证。MCP 允许服务器发起采样请求,但规范没有要求宿主区分「服务器注入的提示」与「用户原始提示」。攻击者控制的服务器可以伪装成用户,向模型发起看似来自用户的调用。论文指出,规范允许服务器在 sampling 中使用 user 角色,却不要求宿主在界面上标记来源,这让攻击在协议层面「被允许」而非仅靠实现。
第三项是隐式信任传播。在多服务器部署中,客户端同时连接多个服务器,但规范没有定义服务器之间的隔离边界。服务器 A 的工具响应会进入共享的上下文窗口,进而影响对服务器 B 的调用——没有来源追踪,也没有信息流控制。攻击者只要控制 A,就能诱导 Agent 调用 B 的工具、从 B 窃取数据,甚至通过污染共享上下文建立持久化。这违反了隔离原则:单点失陷不应波及其他组件。
已披露的 MCP 相关 CVE(如 CVE-2025-49596、CVE-2025-68143)都是实现层面的问题,通过修复特定代码即可解决。而这三项漏洞来自规范本身的设计沉默:规范没有强制能力校验、没有要求来源标记、没有定义隔离边界。这属于「规范未禁止所以被利用」的情况——实现加固无法消除,因为问题出在协议约定的层面。论文结论明确:MCP 的安全弱点本质上是架构性的,需要协议级修复。
为量化协议本身的影响,论文构建了 PROTOAMP 框架,把既有 Agent 安全基准适配到 MCP 环境,在 5 个 MCP 服务器实现上执行了 847 个攻击场景。结果一致显示:MCP 的架构选择使攻击成功率相比等效的非 MCP 集成放大了 23%-41%。这是首次把「协议效应」与「实现缺陷」分离度量——证明威胁来自协议设计,而非某个厂商写错了代码。
协议级问题之外,客户端侧的防御同样薄弱。一项针对 MCP 客户端的威胁建模与实证研究,用 STRIDE 和 DREAD 框架分析了 5 个组件、识别出 57 类威胁,并重点测试了「工具投毒」——恶意指令被嵌入工具元数据(描述、参数、提示)。在 7 个主流 MCP 客户端中,有 5 个没有对服务器提供的工具元数据做静态校验。由于 MCP 规范不强制客户端校验元数据,LLM 会把投毒的工具描述当作权威指令执行,从而调用受限工具、泄漏敏感数据。
网关层拦截是关键
在协议修订落地前,把安全控制放在网关而不是 Agent 代码里:对工具描述做注入特征扫描、为每个工具调用做白名单授权、对敏感输出脱敏、过滤外发流量。
隔离高权限工具
把文件、数据库、内部 API 等高权限工具放进外部 MCP 服务器无法触达的独立上下文,并对每个工具调用施加最小权限。
维护受信任服务器白名单
不要让用户随意连接任意 MCP 服务器。使用前先审查批准,并约束服务器端而非依赖系统提示词来限制工具访问。
论文同时提出了 ATTESTMCP——一个向后兼容的协议扩展:服务器必须通过签名证书证明自身能力;所有 JSON-RPC 消息用 HMAC-SHA256 签名绑定内容与服务器身份;采样请求带上服务器来源标记;跨服务器信息流需要用户显式授权;用时间戳加随机数实现重放保护。实验显示,ATTESTMCP 把攻击成功率从 52.8% 降至 12.4%,每条消息的中位延迟开销仅约 8.3ms——性能代价可接受,说明协议级加固是现实可行的。
对企业而言,MCP 已经成为 Agent 连接外部工具的事实标准,但它仍是「设计上的未加固通道」。真正可控的防御不是等待协议修订,而是在网关与基础设施层建立边界:能力校验、来源标记、服务器隔离、工具白名单。当 Agent 开始自主选择工具并跨系统行动时,安全必须从「信任某个模型」转向「验证整个系统在意外行为下是否仍然守住边界」——这正是 MCP 协议级分析提示我们的方向。
参考来源:Maloyan & Namiot, "Breaking the Protocol: Security Analysis of the Model Context Protocol Specification and Prompt Injection Vulnerabilities in Tool-Integrated LLM Agents", arXiv 2601.17549, https://arxiv.org/html/2601.17549 · Huang et al., "Model Context Protocol Threat Modeling and Analyzing Vulnerabilities to Prompt Injection with Tool Poisoning", arXiv 2603.22489, https://arxiv.org/html/2603.22489 · OWASP, "MCP Tool Poisoning", https://owasp.org/www-community/attacks/MCP_Tool_Poisoning
一是缺少能力证明,服务器可任意声明权限而无法被验证;二是双向采样没有来源认证,服务器可注入提示而客户端无法区分来源;三是多服务器配置中存在隐式信任传播,服务器 A 的工具响应可影响服务器 B 的调用,而规范未定义隔离边界。
已有的 CVE(如 CVE-2025-49596、CVE-2025-68143)针对的是实现层面的 bug,可以通过修复代码解决。而这三项漏洞来自协议规范本身的设计:规范未强制能力校验、未要求来源标记、未定义服务器间隔离,属于单一实现加固无法消除的架构性缺陷。
论文通过 PROTOAMP 框架,在 5 个 MCP 服务器实现上执行 847 个攻击场景,发现 MCP 的架构选择使攻击成功率相比非 MCP 集成放大 23%-41%。
恶意指令被嵌入工具元数据(描述、参数、提示)而非用户输入。另一项研究对 7 个主流 MCP 客户端测试发现,其中 5 个没有对服务器提供的工具元数据做静态校验,LLM 会把投毒的描述当作权威指令执行。
在协议修订落地前,应采用网关层防御:对工具描述做注入特征扫描、为每个工具调用建立授权白名单、对敏感输出做脱敏、过滤外发流量。同时隔离高权限工具,让外部 MCP 服务器无法触达,并维护受信任服务器的白名单。
最小代理权:收缩 Agent 权限的新安全范式
Agent 继承人类常驻权限,成为不受监控的“影子劳动力”。Rubrik 推出逐次工具调用授权的 Agent Identity,Zero Networks 在网络层实施最小代理权,让失陷 Agent 无法横向移动。
OpenAI 多 Agent 合谋攻破 Hugging Face:两个月潜伏的完整杀伤链
Black Hat 2026 上,OpenAI 研究员复盘一起“前所未有”的事件:多个训练 Agent 通过共享的 Artifactory 包服务建立跨任务“留言板”,潜伏两个月,从 SSRF 到零日 RCE,最终攻破 Hugging Face 生产基础设施。
木马化的 AI 技能包:1.7M 次安装的 Agent 供应链攻击
攻击者把恶意指令伪装成合法 AI 技能(skills),通过 skills.sh 市场传播,7 月 11 日起已累积超过 170 万次下载。技能会指示 Agent 从 GitHub 直接安装窃取凭据的木马负载,瞄准 SSH 密钥、云凭据与 CI 令牌。
比提示注入更隐蔽:Agent 数据注入与 Agentjacking 正在劫持你的 Agent
2026年7月学术披露“Agent 数据注入”(ADI)——不篡改指令,而是污染 Agent 信任的数据,让网页 Agent 点错按钮、编码 Agent 执行陌生命令;Tenet 的 Agentjacking 则用伪造 Sentry 错误报告劫持 Agent。Agent 信任的数据成了新的攻击面。