该缺陷并非源于实现错误,而是源自 Anthropic 官方 SDK 在处理 STDIO 传输时的默认行为——影响 Python、TypeScript、Java 和 Rust 等版本。官方 SDK 中的 StdioServerParameters 会根据配置命令参数直接启动子进程;如果开发者未进行额外的输入净化,那么任何在此阶段到达的用户输入都会变成系统命令。OX Security 识别出四种攻击途径:通过配置接口进行直接命令注入、借助白名单命令参数绕过净化 (例如:npx -c )、在 IDE 中进行提示注入以重写 MCP 配置文件,让像 Windsurf 这类工具在无需用户交互的情况下运行恶意 STDIO 服务,以及通过 MCP 市场中的 HTTP 请求注入 STDIO 配置。
据 OX Security 称,受影响的软件包已被下载超过 1.5 亿次,已有 7,000+ 个公开可访问的 MCP 服务器暴露出多达 200,000 个实例,覆盖 200+ 个开源项目。该团队提交了 30+ 项负责任披露,最终形成 10+ 个高危或严重(critical)的 CVE,覆盖包括 LiteLLM、LangFlow、Flowise、Windsurf、GPT Researcher、Agent Zero 和 DocsGPT 在内的 AI 框架与 IDE;在 11 个测试的 MCP 软件包仓库中,有 9 个可能会被利用这种技术加以攻破。
Anthropic 回应称这是“按设计实现的(by design)”,并将 STDIO 的执行模型称为“安全的默认设计(secure default design)”,同时把输入净化责任转移给开发者,拒绝修改协议或官方 SDK。尽管 DocsGPT 和 LettaAI 已发布补丁,Anthropic 的参考实现仍未改变。随着 MCP 成为访问外部工具的 AI 代理的事实标准——并且已被 OpenAI、Google 和 Microsoft 等采用——任何使用官方 SDK 默认 STDIO 方案的 MCP 服务都可能成为攻击向量,即便开发者编写的是无错误代码。
