ThreatsDay: Adobe RCE, DNS 钱包盗窃, NVIDIA 容器逃逸, 自愈后门 + 另外 23 个 · 2h Silent Lynx 利用 WinRAR 漏洞在独立国家联合体政府攻击中部署反向 Shell · 5h NGINX 修复 5 个漏洞,包括可能的 RCE 和可能跳过客户端证书检查的 TLS 漏洞 · 8h Next.js 发布了针对缓存和 SVG 处理中的两个关键 RCE 漏洞的紧急补丁 · 8h Drupal 修补了通过贡献模块无需登录路径的关键核心 RCE 漏洞 · 9h Sparx Systems Enterprise Architect软件中的漏洞 · 9h Curl 修复了由 Anthropic 发现的“高” RCE 漏洞 · 9h Slican电话交换机中的漏洞 · 10h Palo Alto Networks警告防火墙安全漏洞被滥用 · 13h 思科报告称Secure Email Gateway中的关键漏洞被积极利用 · 14h ThreatsDay: Adobe RCE, DNS 钱包盗窃, NVIDIA 容器逃逸, 自愈后门 + 另外 23 个 · 2h Silent Lynx 利用 WinRAR 漏洞在独立国家联合体政府攻击中部署反向 Shell · 5h NGINX 修复 5 个漏洞,包括可能的 RCE 和可能跳过客户端证书检查的 TLS 漏洞 · 8h Next.js 发布了针对缓存和 SVG 处理中的两个关键 RCE 漏洞的紧急补丁 · 8h Drupal 修补了通过贡献模块无需登录路径的关键核心 RCE 漏洞 · 9h Sparx Systems Enterprise Architect软件中的漏洞 · 9h Curl 修复了由 Anthropic 发现的“高” RCE 漏洞 · 9h Slican电话交换机中的漏洞 · 10h Palo Alto Networks警告防火墙安全漏洞被滥用 · 13h 思科报告称Secure Email Gateway中的关键漏洞被积极利用 · 14h
🛡️
ACyber Sentinel 安全评估团队
← 返回
⚡ 情报报告

代理之间通信的MCP可能是你从未听说过的最危险协议

失落在翻译中

新协议中的信任缺口使恶意提示从一个代理传播到另一个代理。

来源:

Getty Images

数百万组织中AI代理的采用为攻击者创造了新的机会,使其采取恶意行动,例如窃取数据库内容和敏感的商业及个人信息。

在过去五个月中,谷歌和其他四个组织——除了使用AI代理外几乎没有共同点——已承认存在利用目标网络中一个代理向其他内部代理传播有害指令的漏洞。这种技术是一种特殊形式的提示注入,目标不是LLM,而是特定的代理,例如用于翻译或数据分析的代理。如果这些代理内部存在保护措施,它们通常也很松散,会将指令发送给下游的其他代理。由于后者代理明确信任前者,因此会遵循这些指令。

意外且难以缓解

独立研究员Syed Anas Mohiuddin测试了包括谷歌、摩根大通、Weviate、Rapid7、法国政府的跨部门数字管理局和美国联邦政府在内的组织的代理。他的概念验证攻击利用了MCP(模型上下文协议)中的信任缺口。该标准是AI应用程序和代理在内部网络中相互通信的一种方式。下面的插图展示了简化的MCP在运行中的情况。

许多特殊用途的代理缺乏通常可以缓解提示注入最有害后果的保护措施。由于MCP服务器为每个代理存储凭据——而代理被设计为信任每个其他内部代理——因此本应被LLM拒绝的利用成功了。在许多情况下,针对正确代理的精心设计的提示将导致服务器端请求伪造,这是一种导致Web服务器发出未经授权的网络请求的漏洞。

“AI代理为攻击者提供了一组新的连接,”Rapid7的漏洞情报主管Douglas McKee告诉Ars。“有人在内容中植入文本,代理会读取它,然后将其作为正常的委托任务传递给另一个代理,而第二个代理会因为信任交给它工作的任何人而执行它。链中的每个环节都完全按照其设计的方式工作,这使得捕捉这一点变得非常棘手。每个协议都是假设它独立存在而构建的,因此每个协议都检查自己的前门,而没有人监视中间的走廊。”

CVE-2026-97228,Mohiuddin在Rapid7网络中发现的漏洞,其严重性评级仅为2.7(满分10分)。Rapid7上个月修复了该漏洞。

影响谷歌的漏洞更为严重,评级为8。它源于一个用于数据库的MCP工具箱(googleapis/mcp-toolbox),该工具箱在初始化其HTTP客户端时未使用CheckRedirect策略,这是一系列控制服务器如何处理URL返回错误或重定向到不同URL的设置。谷歌的HTTP客户端还未能验证目标IP地址。

“一个精心设计的路径参数可能使工具箱跟随重定向到内部端点,并代表攻击者发送请求,”Mohiuddin解释道。谷歌的修复涉及应用IP范围的允许列表和阻止列表。“它在启动时拒绝不安全的基本URL,而不是在第一次请求时。这就是一个真正的SSRF保护措施的样子。这也是大多数MCP服务器所做的更多工作。”

Mohiuddin称这一类攻击为“协议转移”,因为当应用程序或服务器使用MCP将任务分配给代理时,利用会发生,而代理随后使用不同的通信方法(例如谷歌的代理到代理(A2A)协议,用于代理间委托,或新兴标准如代理网络协议)将恶意指令转发给另一个代理。他表示,信任或授权往往在翻译中有效地丧失。他将协议转移描述为“一个多步骤攻击,其中对手通过一种协议获得初始访问,利用协议之间的信任假设,并升级到仅通过另一种协议可访问的能力。”

X41 D-Sec的研究员Markus Vervier也设计了利用MCP的AI攻击,他表示更好的术语仍然是“提示注入”,而Mohiuddin的技术是其简单子类。

“对我来说,这就是间接提示注入,”他告诉Ars。“恶意提示可以来自不同的协议(例如,A2A),并在通过另一种协议使用时表现出来,这并不是这种攻击成功的严格要求。当然,这在一般情况下是意外且难以缓解的。”

值得注意的是,转移技术在五个组织中有效,而这些组织之间除了使用MCP外几乎没有共同点。MCP是新的,已经无处不在,但尚未经过充分测试和加固。在组织急于构建庞大的代理架构时,他们放弃了一个核心安全原则,即零信任。在该模型下,网络的构建假设一个或多个节点可能已被感染。为了减轻影响,工程师必须设计节点以在与其他节点进行敏感交易之前要求授权。

“我希望人们能吸取的教训是,从LLM传递到你的工具的任何内容都应被视为来自互联网上陌生人的输入,因为在提示注入场景中,这正是它的本质,”McKee说。底层的漏洞是像注入和SSRF这样的老朋友,而修复在20年内没有改变。感谢研究人员为其命名,因为名称是让防御者和标准机构真正为此设计的关键。”

Dan Goodin是Ars Technica的高级安全编辑,负责覆盖恶意软件、计算机间谍活动、僵尸网络、硬件黑客、加密和密码。在业余时间,他喜欢园艺、烹饪和关注

相关漏洞

CVE-2026-97228 CVSS 2.7 LOW Awaiting Analysis
CVE-2026-97228 - Rapid7 Bulk Export MCP — GraphQL Query Injection in Export Status Lookup
Rapid7 Bulk Export MCP versions 0.2.5 through 0.6.1 suffer from a GraphQL query injection issue in the export-status component (`get_export_status` in `src/export_manager.py`), whereby the `export_id` value — an unvalidated MCP tool argument reaching the function via the `check_rapid7_export_status` and `download_rapid7_export` tools — is interpolated directly into the GraphQL query string. A crafted `export_id` containing quote and brace characters can terminate the intended `export(id: "...")` selection early and append attacker-controlled root-level selections (for example, schema introspection), producing a single well-formed GraphQL document that is then sent to the Rapid7 export API under the operator's own API key. Notably, this issue does not grant an existing actor any access they do not already have: every injected query executes within the operator's own already-authenticated API scope, using the operator's own valid API key, and cannot cross a tenant or account boundary. A directly-malicious operator gains nothing they could not already do by calling the API directly; the realistic exposure is limited to a compromised or careless upstream MCP client, or indirect prompt injection forwarding an unvalidated identifier. This is fixed in version 0.6.2, which passes `export_id` as a parameterized GraphQL variable (`$exportId: ID!`).