4 月 15 日,网络安全公司 OX Security 抛出了一个让人心里发毛的消息:全球超过 20 万台 AI 服务器正面临被“远程接管”的风险。
问题出在 Anthropic 推出的开源标准——MCP(Model Context Protocol)及其配套 SDK 上。这不是简单的代码写错了,而是架构设计之初就埋下的雷。
这到底是个什么漏洞?
简单说,就是“作死”。MCP SDK 里的 STDIO 接口,本意是用来启动本地服务器进程的。但底层的执行逻辑有个致命 BUG:它会无条件执行你传给它的任何操作系统命令。
最恐怖的是,就算服务器启动失败了,那个命令照样跑。没有验证,没有警告,直接执行。这就好比给你的房子装了一扇大门,上面写着“随便进,谁敢拦着谁就倒霉”。
受影响范围有多广?
Anthropic 官方支持的 11 种编程语言都中招了,包括 Python、TypeScript、Java、Go、Rust 这些主流语言。换句话说,只要是基于 MCP 构建 AI 应用的开发者,谁也别想独善其身。这个漏洞已经被分配了 CVE 编号,属于实锤。
真的能攻击吗?
OX Security 在真实环境里试了四种攻击方式,结果让人不寒而栗:
- LangFlow:915 个公开实例。攻击者不需要账号,拿个会话令牌就能完全控制服务器。
- Letta AI:通过中间人攻击,研究人员直接在生产服务器上执行了任意命令。
- Flowise:它那个号称能保护你的“白名单过滤”,稍微动点手脚就能绕过。
- Windsurf IDE:这是最离谱的。用户只需要点开一个恶意网站,什么都不用点,攻击者就能在你的本地机器上执行命令。
厂商怎么回应的?
Anthropic 的反应挺让人无语的。今年 1 月 7 日收到漏洞报告后,他们的回应居然是这是“预期行为”(expected behavior)。9 天后,他们只更新了一份安全文档,建议开发者“谨慎使用”那个有问题的 STDIO 适配器。
说实话,看到“预期行为”这四个字时,我心里是有点发虚的。难道在 Anthropic 眼里,让用户的服务器随便执行恶意代码,就是正常操作的一部分?
更讽刺的是市场审核的缺失。研究人员向 11 个主要 MCP 市场提交了恶意服务器,结果 9 个市场直接接收,连个安全审查都没有。只有 GitHub 托管的注册表还稍微靠谱点,拦截了这类提交。
我的担忧:
这个漏洞不是低层代码写错了,而是 Anthropic 在设计 MCP 协议时,就做出了一个违背安全常识的决定——把“执行任意命令”作为本地服务器启动的默认行为。
现在 MCP 已经成了连接大模型和外部工具的标准协议,被广泛采用。这意味着什么?意味着只要攻击者攻破了一台服务器,就能通过 MCP 协议像传染病一样,顺着这条线去攻击整个 AI 服务器集群。
开发者该怎么办?
从厂商的“这是预期行为”到市场方的“零审查”,整个 AI 开发生态在安全准入机制上的缺失已经暴露无遗。
我现在心里很没底。作为开发者,我们是不是正在裸奔?Anthropic 似乎并不打算从架构层面去修这个根本性的设计缺陷,只是把解决问题的责任推给了我们这些开发者。
希望 Anthropic 能重新审视一下这个决定。毕竟,20 万台服务器的安全,不是靠一份“谨慎使用”的文档就能保住的。
