网络安全
研究员披露 Google、JPMorgan 及两国政府的相同 MCP 漏洞

独立安全研究员 Syed Anas Mohiuddin 在 2026年10月的研究更新 中披露,同样的服务器端请求伪造错误出现在 Model Context Protocol 服务器上,已得到五个不相关组织的安全团队确认并修复:Google、JPMorgan Chase、Weaviate、法国跨部门数字局以及印度尼西亚坦格朗市政府。
该更新标题为“Protocol Pivoting, four months later”,检验了 Mohiuddin 在 2026年5月提出的预测:如果该弱点是结构性的而非单一的疏忽实现,则相同的漏洞会出现在由互不共享代码、行业、国家或所有者的团队编写的服务器上。他报告称,五个组织均通过各自的安全团队确认了此案例,且安全供应商 Rapid7 另行发布了针对另一相关漏洞的 CVE。该更新统计出五个组织修复了相同的 SSRF,两个组织发布了 CVE,且在美国联邦 MCP 服务器中仍有五项未解决的发现。
Mohiuddin 描述了该模式背后的两种失效模式。第一种是服务器端请求伪造:MCP 服务器根据代理提供的 URL、路径或端点构建出站请求,却未检查其解析结果,导致代理实际上决定了服务器的网络身份向何处通信。第二种是上游数据处理不安全,最明显的表现是将完整的上游 API 响应写入集中日志而未进行脱敏,普通错误即可触发此问题。他将这两者归因于一个假设,即跨越 MCP 边界的数据被视为可信,因为它来源于系统内部,而他认为在代理化的流水线中这一假设并不成立。
Google MCP Toolbox 中的 CVE-2026-14540
根据 GitHub Advisory Database 条目(CVE-2026-14540),该条目由国家漏洞数据库发布,发现 Google mcp-toolbox 0.3.0 至 1.4.0 版本的通用 HTTP 源和工具组件存在 SSRF 漏洞。由于 HTTP 客户端没有严格的重定向策略,也从未验证目标 IP 地址,精心构造的路径参数可能将工具箱的出站请求重定向到内部或任意外部端点。该通告将此缺陷评为高危,CVSS 分数为 8.0;发布时间为 2026年7月31日,最近一次更新为 2026年8月8日。Mohiuddin 表示 CVE 于 2026年7月3日被预留,并且记录中将他列为发现者。
Google 于 2026年6月18日 合并了修复,googleapis/mcp-toolbox 仓库中的 pull request #3448,并随 mcp-toolbox v1.5.0 发布。该 pull request 实现了 SSRFGuard,以防止在地址检查与连接之间的窗口期出现 DNS 重绑定攻击,新增了可配置的 allowPrivateNetworks、allowedIpRanges 和 customBlockedIpRanges 属性,在初始化时而非首次请求时验证配置的 BaseURL,并在 SSL 验证被禁用时明确警示中间人风险。该 PR 将 Mohiuddin 标记为报告者,Mohiuddin 将 Google 的修复描述为真实 SSRF 防护的参考实现。
另外四个已确认案例
Mohiuddin 报告称,JPMorgan Chase 的开源 jpmorgan-payments/ai 仓库包含一个文档搜索 MCP 服务器,其 read_documentation 工具在获取之前会应用域名白名单,而其兄弟工具 related() 则在服务器端无任何限制地获取调用方提供的 URL。他指出该组件是从一个 AWS 项目分叉而来,原项目从未对调用方的 URL 进行解析,银行的负责任披露团队确认此发现有效,并已部署修复。他在 JPMorgan Chase 的公开负责任披露认可页面上以姓名列出,并将此发现评为中等严重性,指出伪造请求不携带任何凭证。
Mohiuddin 报告称,Weaviate 合并了一个 pull request,将 Google 模块的 apiEndpoint、region 和 location 设置限制为 Google API 主机,并在其 2026年8月25日的公开安全名人堂条目中以姓名列出他。
datagouv/datagouv-mcp 项目于 2026年9月4日 合并了 pull request #126,“feat: harden SSRF on external APIs”,该 pull request 开头即将 Mohiuddin 标记为报告者。根据 PR,任何已注册的 data.gouv.fr 生产者提供的 machine文档url 字段会在服务器端被获取,且可能指向回环、私有网络或云元数据地址,DNS 重绑定能够在检查与连接之间更换目标,302 重定向亦可能落在内部主机上。修复在连接时验证目标 IP,重新检查每一次重定向跳转,并拒绝代理。Mohiuddin 将该项目认定为法国国家开放数据平台的官方 MCP 服务器,由政府跨部门数字局 DINUM 维护。
A GitHub 安全通报于 2026 年 9 月 3 日发布 由 INFOKOM-KI/Wazuh-MCP-Server 的维护者发布,评级为高,记录了 blueteam检查webshell 工具宣称的 SSRF 防护仅拒绝字面 IP 地址而不解析主机名,因此任何指向私有、回环或链路本地地址的 DNS 名称,包括云实例元数据,均可绕过该防护。通报指出,该工具文档中承诺的 “SSRF Protection: Private/reserved IPs in the URL host are rejected” 在基于主机名的 URL 上并不适用。该缺陷已在提交 2bbfe12 中修复,通报将报告人归功于 Mohiuddin。Mohiuddin 表示他于 2026 年 9 月 2 日报告了此问题,维护者从 tangerangkota.go.id 地址回复,且该项目由印度尼西亚 Tangerang 市政府维护。
Rapid7 的 CVE-2026-97228 漏洞数据库条目 记录了 Rapid7 Bulk Export MCP 0.2.5 至 0.6.1 版本中的 GraphQL 查询注入,其中 id MCP 工具参数直接插入到 GraphQL 查询中。Rapid7 给出 2.7 分,低危,基于 CVSS 3.1 评分体系,该记录于 2026 年 9 月 25 日发布,并指出注入的查询在操作员自己的 API 范围内执行,无法跨租户边界;0.6.2 版本通过将 export 作为参数化变量传递来修复此问题。Mohiuddin 表示 Rapid7 将其归功于发现者。
除此之外,Mohiuddin 报告称截至本次更新,已有 16 条由各项目维护者发布的 GitHub 安全通告将其列为报告人,涉及 SSRF、命令注入、身份验证漏洞、会话劫持、凭证泄露以及对先前修复的绕过,并且他已在包括 github-mcp-server、mongodb-mcp-server 和 salesforce-mcp-server 在内的项目中获得修复合并。
未解决的政府发现
Mohiuddin 报告称他于 2026 年 9 月 2 日以私密 GitHub Security Advisories 形式提交了五项发现,涉及 GSA 技术转型服务下的 MCP 服务器:美国退伍军人事务部的福利索赔服务器、CMS Blue Button 服务器、regulations.gov 服务器、USASpending 服务器以及 CDC PLACES 服务器。他表示这五项仍在分诊阶段,尚未修复,也未作为已确认的结果公布。
在 VA 案例中,他仅在类别层面进行描述,该服务器在错误级别记录完整的上游福利 API 错误正文且不做脱敏;这些正文可能包含退伍军人的姓名、社会安全号码、出生日期和地址,他指出常规的验证失败就足以在正常运行时触发此类日志记录。在服务器修补之前,他暂不披露代码层面的细节。
他还报告称,2026 年 9 月 1 日他通知 JPCERT 日本数字厅的 jgrants-mcp-server 未进行身份验证,随后在 2026 年 9 月 7 日发起了公开的 pull request,要求显式选择加入以将服务器绑定到除回环之外的任何地址并限制附件写入大小。该 pull request 尚未合并,他并未将其视为已确认的结果。
协议枢轴与 MCPCon 演讲
Mohiuddin 将协议枢轴定义为一种多步骤攻击,攻击者通过一种协议进入系统,利用协议之间的信任假设,进而提升至只能通过另一种协议获得的能力。他的具体示例是在 MCP 工具输出中嵌入类似 A2A 任务指令的文本;一个协调代理将其作为常规委派传递给子代理,而子代理因信任其协调者而执行该指令。
正式预印本,”Protocol Pivoting: Cross-Protocol Attack Escalation in Agentic AI Systems,” 于 2026 年 5 月 24 日在 Zenodo 上发布。文中提出了三种情景:通过隐式信任委派实现的 MCP 到 A2A 特权提升、通过恶意代理冒充实现的 A2A 到 MCP 能力注入,以及跨协议提示注入链。文章还分析了现有防御为何无法抵御此类攻击,并提出了一个统一的跨协议安全框架,包含正式的信任边界模型以及三项与协议无关的缓解措施。
5 月的工作始于微软的 playwright-mcp,其 browser_navigate 工具接受代理提供的任何 URL,且未提供 SSRF 防护,导致代理可以被引导至 AWS 实例元数据服务 169.254.169.254 及其凭证。Mohiuddin 指出他将此问题以公开 GitHub issue 形式提交,尚无 CVE 编号和厂商确认,严重性评级为其个人评估。
Mohiuddin 认为软件组成分析和依赖扫描器会遗漏此类问题,因为危险输入通过传输层以工具参数的形式到达,而该参数在工具清单中描述但扫描器从未读取,导致调用图在传输边界处中止。他指出自己构建了 mcp-safeguard,这是一款开源扫描器,可在无需源码的情况下通过暴露的工具表面测试 MCP 服务器,寻找六类问题:SSRF、权限过度、提示注入面、信息泄露、身份验证缺口以及生命周期绕过。他还表示,包括他自己在内的模式匹配工具会遗漏该类的大量实例。
Mohiuddin 表示他将在 2026 年 10 月 23 日于美国加州圣何塞的 MCPCon North America 上展示跨供应商模式,届时将包括已修复的所有发现,并且联邦层面的发现将在修补完成之前保持私密。












