据動察 Beating 監測,安全公司 OX Security 近日披露,Anthropic 主導的開放協議 MCP(Model Context Protocol,AI 代理調用外部工具的事實標準)存在設計層面的遠端代碼執行漏洞。攻擊者可在任何運行有漏洞 MCP 實現的系統上執行任意命令,拿到使用者數據、內部數據庫、API 金鑰和聊天記錄。漏洞不出在實現者的編碼失誤,而在 Anthropic 官方 SDK 處理 STDIO 傳輸時的默認行為,Python、TypeScript、Java、Rust 四個語言版本都中招。
STDIO 是 MCP 的一種傳輸方式,讓本地進程通過標準輸入輸出通信。官方 SDK 裡的 StdioServerParameters 會按配置裡的命令參數直接啟動子進程,開發者如果沒額外做輸入清洗,任何能走到這一步的使用者輸入就會變成系統命令。OX Security 把攻擊面歸成四類:配置界面直接注入命令;拿白名單裡允許的命令加行標誌繞過清洗(例如 `npx -c <命令>`);在 IDE 裡用提示注入改寫 MCP 配置檔案,讓 Windsurf 這類工具無需使用者交互就跑起惡意 STDIO 服務;以及借 MCP 市場的 HTTP 請求偷偷塞進 STDIO 配置。
OX Security 給的數字:受影響軟體包累計下載超 1.5 億次,公開可訪問的 MCP 伺服器超 7000 台,合計暴露最多 20 萬個實例、涉及 200 多個開源專案。團隊累計提交 30 餘份責任披露、拿到 10 個以上高危或嚴重級 CVE,覆蓋 LiteLLM、LangFlow、Flowise、Windsurf、GPT Researcher、Agent Zero、DocsGPT 等 AI 框架與 IDE;測試過的 11 家 MCP 包倉庫裡有 9 家能被這種手法塞進惡意配置。
披露後,Anthropic 回應稱這是「預期行為」(by design),STDIO 的執行模型屬於「安全的默認設計」,並把輸入清洗的責任劃給開發者,拒絕在協議或官方 SDK 層面改動。DocsGPT、LettaAI 等廠商已自行發補丁,Anthropic 參考實現的默認行為未變。
MCP 已是 AI 代理接外部工具的事實標準,OpenAI、Google、微軟都在跟進。根子沒修的情況下,任何沿用官方 SDK 默認方式接 STDIO 的 MCP 服務,即使自己沒寫錯一行代碼,也可能成為攻擊入口。