MCP 协议出事了:20 万台 AI 服务器暴露,Anthropic 拒绝修复——这不是漏洞,是设计决策
4月15日,安全公司 OX Security 发了一份报告,说 Anthropic 主导的 MCP(Model Context Protocol)协议存在架构级设计缺陷。
影响范围:
- 超 20 万台 AI 服务器面临潜在攻击风险
- 超 3.2 万个代码仓库暴露
- 攻击者可借此直接窃取用户数据、数据库、API 密钥及聊天记录
- 已获得 10 个高危/严重级别的 CVE 编号
说实话,这个数字让我后背一凉。
MCP 是什么?Anthropic 去年 11 月推出的开源协议,目的是让 AI 大模型能够标准化地连接各种外部数据和工具。你可以把 MCP 理解为「AI 系统的 USB 接口」——一套定义好的连接标准,让不同的 AI 工具和数据源能够互相通信。
这个协议推出后,Cursor、Claude Code 等主流 AI 编程工具都陆续支持了。生态扩张得很快。
然后问题来了。
「这不是漏洞,是设计决策」
OX Security 的报告指出,MCP 的 STDIO 传输机制存在设计缺陷,允许未经认证的直接系统命令执行。攻击者可以利用这个缺陷,在某些场景下远程执行代码。
这个漏洞波及了 MCP 官方支持的 11 种语言:Python、TypeScript、Java、Kotlin、C#、Go、Ruby、Swift、PHP、Rust。
但最让人意外的不是漏洞本身,是 Anthropic 的回应。
Anthropic 拒绝了修复请求。
他们的说法是:这个协议「运行正常」,这个行为是「设计预期」。
这是什么意思?
我的理解是:MCP 的设计逻辑是允许 AI 主动调用外部工具的,而这种调用本身就需要某种程度的系统交互能力。Anthropic 认为,如果把这个能力去掉,MCP 的核心价值就没有了。
换句话说,这是一个「功能 vs 安全」的权衡。Anthropic 选择了功能。
问题来了:这是负责任的态度吗?
我在安全圈的朋友看到这个新闻,第一反应是:「这不就是给了攻击者一个合法后门吗?」
MCP 协议的本意是让 AI 能够操作文件和执行命令。如果这个能力被攻击者滥用,那就是灾难性的。
而且,考虑到 MCP 已经被大量开发者用于构建 AI 应用——不仅仅是 Cursor 和 Claude Code,还有无数基于 MCP 的定制化 AI 解决方案——这个漏洞的影响面远比表面上看到的更大。
奇安信的分析报告里有一句话我很认同:「这不是一个普通的漏洞,这是一个『被设计出来的风险』。」
我的判断
这件事上,我觉得有两点值得思考:
第一,Anthropic 的商业压力。
MCP 是 Anthropic 建立生态壁垒的核心工具之一。如果现在强制修复这个设计缺陷,意味着所有基于 MCP 的现有应用都需要跟着改。这对于一个刚刚起步的生态来说,可能是致命的打击。
所以 Anthropic 选择了「拖」——不是不修,是现在不修。
第二,作为开发者,我们怎么办?
老实说,我在生产环境里用 MCP 的场景不多,主要还是本地开发。但如果你或者你的公司在用基于 MCP 的应用,这个报告应该引起重视。
一个务实的建议是:检查你的 MCP 工具是否在暴露公网环境里运行?如果是,尽快加一层网络隔离或者权限控制。另一个建议是关注 MCP 官方的安全公告,等待官方的修复方案——虽然他们说现在不修,但这种级别的漏洞,后续肯定会有应对措施。
至于 Anthropic 的态度,我只能说:商业决策和工程安全之间,永远存在张力。这次他们选了商业,但下次呢?
倾向性问题
如果你是 MCP 的用户,在得知这个漏洞和 Anthropic 的态度之后,你会继续用 MCP,还是考虑其他替代方案?理由是什么?