MCP 后端漏洞:经典缺陷在 AI 与数据库桥接层卷土重来
Akamai 于 2026 年 5 月 12 日发布的研究记录了三个 MCP 服务器中的 SQL 注入(CVE-2025-66335)、缺失认证与未净化输入——涉及 Apache Doris、Apache Pinot 和 Alibaba RDS。重点不在单个漏洞,而在背后的模式。
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 指南都汇聚到一组小型控制项。任何一项单独都不足够,但合在一起可以化解已披露的漏洞类。
- 在传输层强制认证。 任何绑定到
localhost之外网络接口的 MCP 服务器,都必须在暴露工具前要求认证。无论网络看起来多么 “内网”,都将裸 HTTP 传输(0.0.0.0:8080、0.0.0.0:8006)视为严重级别的错误配置。 - 在服务端校验每一个参数。 只检查五个参数中的一个(Doris),或只判断查询是否以
SELECT开头(Pinot)的校验器,只是合规打勾,不是真正的控制。使用参数化查询或不会将不可信字符串拼入最终 SQL 的 query builder。 - 对后端凭证应用最小权限原则。 MCP 服务账号只应拥有所暴露工具所需的最小权限:对特定表的只读权限、无 DDL、无跨 schema 访问。最小权限账号被 SQL 注入,影响被限制在 schema 内;管理员账号被 SQL 注入,则是全盘失守。
- 审计自家分发的官方 MCP 服务器。 厂商发布的 MCP 服务器并不天然安全。读认证代码、读传输绑定、读参数处理,并固定在一个已知修复的版本。Doris:升级到 v0.6.1 或更高(CVE-2025-66335 的补丁)。Pinot:启用 OAuth,并考虑禁用 HTTP 传输。Alibaba RDS MCP:不要把 RAG 端点暴露到经过认证、受信任的网络之外。
- 对 MCP 服务器进行网络分段。 即使启用了认证,面向数据库的 MCP 服务器也应该处于与数据库相同的网络控制之下。如果数据库本身没有直接暴露到互联网,前置它的 MCP 服务器同样不应暴露。
- 将 MCP 工具参数视为用户输入。 模型不是您的输入校验器。模型传给工具的任何字符串,在后端看来都是攻击者可控的——因为模型可能在读取攻击者控制的上下文。每一次都要在工具边界处进行校验。
Status
| 项目 | 参考 | 日期 | 备注 |
|---|---|---|---|
| Pinot 披露(StarTree) | Akamai 时间线 | 2025-09-30 | 已联系厂商 |
| Pinot 缓解(新增 OAuth) | StarTree | 2025-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) | Apache | 2025-12-30 | 校验 db_name |
| CVE-2025-66335 分配 | NVD | 2026-01-07 | SQL 注入(CWE-89) |
| Pinot MCP 公开 issue 开启 | GitHub | 2026-05-04 | 协调披露的公开步骤 |
| Akamai 研究发布 | Akamai 博客 | 2026-05-12 | 完整研究,附检测工具 |
| The Register 跟进报道 | The Register | 2026-05-13 | 独立报道 |
| 研究完整呈现 | x33fcon | 2026-06(预定) | 预计同时发布工具 |
本次披露的长远价值并不在三个 CVE 级别的漏洞——它们会被逐个修复、忽略或绕过。其意义在于揭示:MCP 服务器层是一个新的攻击面,继承了几十年仍未解决的后端安全问题,但被穿上了新的工具外衣,部署速度远超安全指引扩散速度。除非认证、校验与最小权限从连接器的第一次提交开始就被纳入设计,下一波 MCP 集成只会重演同一种模式。
Sources
- → https://www.akamai.com/blog/security-research/one-fluke-3-pattern-mcp-back-end-vulnerabilities
- → https://nvd.nist.gov/vuln/detail/CVE-2025-66335
- → https://github.com/advisories/GHSA-qhfq-gvvc-5q6q
- → https://www.theregister.com/security/2026/05/13/bug-hunter-tracks-down-three-serious-mcp-database-flaws-one-left-unpatched/5238916
- → https://genai.owasp.org/resource/a-practical-guide-for-secure-mcp-server-development/