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

MCP 后端漏洞:经典缺陷在 AI 与数据库桥接层卷土重来

Akamai 于 2026 年 5 月 12 日发布的研究记录了三个 MCP 服务器中的 SQL 注入(CVE-2025-66335)、缺失认证与未净化输入——涉及 Apache Doris、Apache Pinot 和 Alibaba RDS。重点不在单个漏洞,而在背后的模式。

2026-05-26 // 8 min affects: apache-doris-mcp, apache-pinot-mcp, alibaba-rds-mcp, mcp-protocol

What is this?

2026 年 5 月 12 日,Akamai 的 Tomer Peled 发布了 One Is a Fluke, 3 Is a Pattern: MCP Back-End Vulnerabilities——一份覆盖约 300 个官方 Model Context Protocol (MCP) 服务器中三个缺陷的协调披露。研究突出了 CVE-2025-66335(Apache Doris MCP 中的 SQL 注入,2026 年 1 月 7 日分配,2025 年 12 月 30 日修复)、StarTree 维护的 Apache Pinot MCP(版本 ≤ 1.1.0)中一条未认证的 SQL 执行路径,以及 Alibaba RDS MCP(RAG 组件)中阿里巴巴拒绝修复的信息泄露问题。

这些漏洞本身都是教科书级别的:缺失输入校验、HTTP 传输上的认证缺失,以及一个未认证的 RAG 端点暴露了 schema 元数据。报告之所以值得阅读,在于其呈现的模式。MCP 是 Anthropic 于 2024 年推出的开放协议,旨在让 LLM 与外部系统对话,它几乎将所有后端安全决策——认证、凭证管理、权限范围、查询校验——都交给实现者。Akamai 攻破的这三台服务器并非个例,而是抽样。

How it works

MCP 服务器位于 AI 智能体与后端系统(此处为数据库)之间。每个服务器对外暴露模型可调用的 “tools”,并自行决定如何认证调用方、在与后端通信前如何校验参数。

CVE-2025-66335——Apache Doris MCP 中的 SQL 注入。 Doris MCP 封装了一个 Security Manager,用于认证 JWT、分配许可级别并运行 SQL 校验器。内部调用形态如下:

async def exec_query_for_mcp(
        self,
        sql: str,
        db_name: str = None,
        catalog_name: str = None,
        max_rows: int = 100,
        timeout: int = 30
    ) -> Dict[str, Any]:
    # Five parameters, but only `sql` is sent to the validator.
    # `db_name` is concatenated into the final query unchanged.

校验器解析 sql 参数后即止步。db_name 参数——同样被拼接进最终查询——从未被净化。任何连接到 MCP 服务器的客户端都可以在 db_name 中传入分号、注释或完整语句,从而对 Doris 实例执行任意 SQL。校验器仅检查解析后语句开头部分的做法进一步放大了问题。Apache 在 v0.6.1 (2025 年 12 月 30 日)发布补丁,CVE 于 2026 年 1 月 7 日分配。

Apache Pinot MCP——认证校验绕过。 StarTree 的 Pinot 集成(≤ 1.1.0)支持绑定在 0.0.0.0:8080 的 HTTP 传输。一旦启用 HTTP,服务器不要求认证,内置的“校验器”仅验证查询字符串以 SELECT 开头:

# Illustrative — paraphrased from the disclosure.
if path == server_config.endpoint and method == "POST":
    await transport.handle_post_message(scope, receive, send)
# No auth check before tool invocation.
# Validator: query.upper().startswith("SELECT")

任何能访问该端点的远程攻击者都可以发起任意 SELECT 查询——足以完成数据外泄,结合拼接技巧还可获得更大范围的控制。StarTree 于 2025 年 10 月 14 日新增了 OAuth 作为认证选项,这降低了正确配置部署的严重度,但并未消除底层的 SQL 校验缺失。

Alibaba RDS MCP——未认证的 RAG 端点。 阿里巴巴的 RDS MCP 服务器内置一个基于 FastMCP 的 RAG 组件,监听 0.0.0.0:8006,只暴露一个工具 get_table_struct——对内部存储的表结构索引执行基于向量的相似度搜索。没有认证,也没有查询校验:任何能访问该端点的客户端都可以提取 schema 元数据——表名、列结构以及其他运维层面的指纹信息。阿里巴巴将该问题标记为 “not applicable”,不予修复;Akamai 于 2025 年 11 月 25 日向 CERT/CC 升级。

Why it matters

三点观察让本次披露的意义超越了单个漏洞。

第一,MCP 在继承经典 Web 漏洞的同时进一步放大了它们。在独立的数据库管理工具里,SQL 注入受限于谁能访问该工具;而在 MCP 服务器中,SQL 注入对任何能与智能体通信的对象开放——在某些部署里,甚至包括通过完全不同渠道到达的提示注入内容。每接入一个新连接器,暴露面就会扩大。

第二,协议的灵活性本身就是漏洞类别。MCP 有意将后端安全决策交给实现者。这在协议设计层面是合理的,但实际后果不容小觑:Akamai 对官方服务器集合的审阅发现,认证、授权与参数处理的实现差异巨大。OWASP GenAI Security Project 已发布 Practical Guide for Secure MCP Server Development,但其推广速度落后于部署速度。

第三,拒绝打补丁是一种带有下游后果的策略选择。阿里巴巴将 RDS MCP 标记为 “not applicable”,意味着对于按原样部署官方服务器的任何运营方,客户 schema 元数据的向量索引依旧无认证可达。把该集成带进生产环境的最终用户继承了这个决定。

Defenses

Akamai 的研究与 OWASP 指南都汇聚到一组小型控制项。任何一项单独都不足够,但合在一起可以化解已披露的漏洞类。

  1. 在传输层强制认证。 任何绑定到 localhost 之外网络接口的 MCP 服务器,都必须在暴露工具前要求认证。无论网络看起来多么 “内网”,都将裸 HTTP 传输(0.0.0.0:80800.0.0.0:8006)视为严重级别的错误配置。
  2. 在服务端校验每一个参数。 只检查五个参数中的一个(Doris),或只判断查询是否以 SELECT 开头(Pinot)的校验器,只是合规打勾,不是真正的控制。使用参数化查询或不会将不可信字符串拼入最终 SQL 的 query builder。
  3. 对后端凭证应用最小权限原则。 MCP 服务账号只应拥有所暴露工具所需的最小权限:对特定表的只读权限、无 DDL、无跨 schema 访问。最小权限账号被 SQL 注入,影响被限制在 schema 内;管理员账号被 SQL 注入,则是全盘失守。
  4. 审计自家分发的官方 MCP 服务器。 厂商发布的 MCP 服务器并不天然安全。读认证代码、读传输绑定、读参数处理,并固定在一个已知修复的版本。Doris:升级到 v0.6.1 或更高(CVE-2025-66335 的补丁)。Pinot:启用 OAuth,并考虑禁用 HTTP 传输。Alibaba RDS MCP:不要把 RAG 端点暴露到经过认证、受信任的网络之外。
  5. 对 MCP 服务器进行网络分段。 即使启用了认证,面向数据库的 MCP 服务器也应该处于与数据库相同的网络控制之下。如果数据库本身没有直接暴露到互联网,前置它的 MCP 服务器同样不应暴露。
  6. 将 MCP 工具参数视为用户输入。 模型不是您的输入校验器。模型传给工具的任何字符串,在后端看来都是攻击者可控的——因为模型可能在读取攻击者控制的上下文。每一次都要在工具边界处进行校验。

Status

项目参考日期备注
Pinot 披露(StarTree)Akamai 时间线2025-09-30已联系厂商
Pinot 缓解(新增 OAuth)StarTree2025-10-14降低严重度,未关闭 SQLi 类
Alibaba RDS MCP 披露Akamai 时间线2025-11-17已联系厂商
阿里巴巴拒绝打补丁Akamai 时间线2025-11-25启动 CERT/CC 升级
Doris MCP 披露Akamai 时间线2025-11-27已联系 Apache
Doris 补丁(v0.6.1)Apache2025-12-30校验 db_name
CVE-2025-66335 分配NVD2026-01-07SQL 注入(CWE-89)
Pinot MCP 公开 issue 开启GitHub2026-05-04协调披露的公开步骤
Akamai 研究发布Akamai 博客2026-05-12完整研究,附检测工具
The Register 跟进报道The Register2026-05-13独立报道
研究完整呈现x33fcon2026-06(预定)预计同时发布工具

本次披露的长远价值并不在三个 CVE 级别的漏洞——它们会被逐个修复、忽略或绕过。其意义在于揭示:MCP 服务器层是一个新的攻击面,继承了几十年仍未解决的后端安全问题,但被穿上了新的工具外衣,部署速度远超安全指引扩散速度。除非认证、校验与最小权限从连接器的第一次提交开始就被纳入设计,下一波 MCP 集成只会重演同一种模式。

Sources