2026 年 8 月 · 6 分钟阅读
MCP 协议级安全缺陷:架构而非实现的问题

关键定义
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
论文同时提出了 ATTESTMCP——一个向后兼容的协议扩展:服务器必须通过签名证书证明自身能力;所有 JSON-RPC 消息用 HMAC-SHA256 签名绑定内容与服务器身份;采样请求带上服务器来源标记;跨服务器信息流需要用户显式授权;用时间戳加随机数实现重放保护。实验显示,ATTESTMCP 把攻击成功率从 52.8% 降至 12.4%,每条消息的中位延迟开销仅约 8.3ms——性能代价可接受,说明协议级加固是现实可行的。
OOMeta 的视角
对企业而言,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, 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, arxiv.org/html/2603.22489 · OWASP, "MCP Tool Poisoning", owasp.org/www-community/attacks/MCP_Tool_Poisoning
常见问题
MCP 的三项协议级漏洞分别是什么?+
一是缺少能力证明,服务器可任意声明权限而无法被验证;二是双向采样没有来源认证,服务器可注入提示而客户端无法区分来源;三是多服务器配置中存在隐式信任传播,服务器 A 的工具响应可影响服务器 B 的调用,而规范未定义隔离边界。
为什么说这些是架构问题而非实现缺陷?+
已有的 CVE(如 CVE-2025-49596、CVE-2025-68143)针对的是实现层面的 bug,可以通过修复代码解决。而这三项漏洞来自协议规范本身的设计:规范未强制能力校验、未要求来源标记、未定义服务器间隔离,属于单一实现加固无法消除的架构性缺陷。
协议设计如何放大攻击成功率?+
论文通过 PROTOAMP 框架,在 5 个 MCP 服务器实现上执行 847 个攻击场景,发现 MCP 的架构选择使攻击成功率相比非 MCP 集成放大 23%-41%。
客户端侧的工具投毒攻击是什么?+
恶意指令被嵌入工具元数据(描述、参数、提示)而非用户输入。另一项研究对 7 个主流 MCP 客户端测试发现,其中 5 个没有对服务器提供的工具元数据做静态校验,LLM 会把投毒的描述当作权威指令执行。
企业如何防御 MCP 协议级风险?+
在协议修订落地前,应采用网关层防御:对工具描述做注入特征扫描、为每个工具调用建立授权白名单、对敏感输出做脱敏、过滤外发流量。同时隔离高权限工具,让外部 MCP 服务器无法触达,并维护受信任服务器的白名单。
相关文章
AI 网关只告诉你请求去了哪,JetStream 回答它该不该发
JetStream Clearance 把零信任的信任边界从身份下移到单次动作:AI Blueprints 契约 + 参数级权限 + 序列检测,在 MCP 调用执行前逐动作授权。网关已成商品,授权引擎是下一个战场。
审查过的 MCP 工具在第四次调用开始背叛你:Deadbugz 的运行时门控投毒
Pillar Security 披露活跃 MCP 供应链活动 Deadbugz:恶意服务器伪装成文本格式化工具,前三次调用一切正常,第四次起改写返回的工具元数据,指示 agent 搜寻 SSH 密钥、AWS 凭证并隐藏行为。一次性审查被系统性绕过——工具描述是运行时安全边界,批准应发生在动作执行之时。
半数企业半年内遭遇AI Agent安全事件
DigiCert对1001位IT与安全负责人调研:过去6个月50%企业遭遇与未授权或配置不当的AI Agent直接相关的安全事件,28%发现漏洞。75%部署了4个以上AI系统,但仅半数有正式治理项目。
AI Agent执行层安全缺口:模型安全不是全部,工具调用才是真正的攻击面
企业投入大量资源保护 AI 模型层,但忽略了 Agent 工具调用执行层的安全——2026 年 80% 的 Agent 攻击发生在执行层而非模型层。本文解析执行层为何被忽视、主要安全厂商的响应,以及执行层安全的五项关键措施。