POST /mcp-rest/test/tools/list原本設計的用意很貼心:讓你在儲存設定前,先測試一下 MCP 伺服器能不能通。但問題在於,這兩個端點會接收包含 Cmd、args 與 env 欄位的完整伺服器設定,為了進行測試,伺服器會直接在 主機上 將你提供的 Cmd 當作子程序(Subprocess)執行起來,而且權限等同於 LiteLLM 代理伺服器本身 。
這代表,駭客只要有一組有效的 LiteLLM 金鑰(即使是低權限的內部測試帳號),就能夠在主機上執行任何指令,權限等同於該代理程式的執行程式。原本這個被列為高風險,CVSS 評分 8.7,前提是「需要驗證」 。
駭客若想省去找金鑰的麻煩,就得靠另一個名為「BadHost」的漏洞 CVE-2026-48710。這個漏洞藏在 Starlette 框架裡——這是一個輕量級的 Python ASGI 框架,不僅是 LiteLLM 的底層,更是 FastAPI、vLLM 等無數 AI 基礎服務的核心支柱,受影響的衍生專案超過 40 萬個 。
它的原理說穿了是一種「路徑混淆」攻擊。當伺服器收到 HTTP 請求時,核心路由是依據「原始請求路徑」來決定該交給誰處理。然而,Starlette 在重建程式看得懂的 request.url 時,會直接拿「Host 標頭」的內容去拼接,中間缺乏嚴格的驗證 。
駭客只要在 Host 標頭內塞入像 ? 或 # 這類特殊字元,就能讓負責檢查身分的驗證中介層看到一條「無害的路徑」(例如 /),同時底層的 ASGI 路由器卻把請求導向了真正危險的端點 POST /mcp-rest/test/connection。也就是說,驗證程序直接被「騙」過去了。
當這兩個漏洞結合在一起時,產生了最嚴重的後果:
成功發動此攻擊的駭客,能做的事情遠比單純植入後門可怕得多:
這是最致命的商業損失。LiteLLM 作為 AI 閘道,串接了 OpenAI、Anthropic、Azure、AWS Bedrock 等數十間服務商的 API 金鑰。駭客一旦進入,就能一次撈走資料庫或環境變數裡儲存的所有金鑰 ,隨即可能發動驚人的帳單攻擊,或者盜用你的 AI 額度。
拿到雲端權限與內部金鑰後,駭客可以輕易地從閘道主機橫向移動(Lateral Movement)到企業內部的 MCP 伺服器、向量資料庫、甚至是下游的 AI 代理人框架,將整個 AI 基礎設施變成自己的遊樂場 。
除此之外,建議在修補程式的空窗期,先於反向代理(Reverse Proxy)或網站應用程式防火牆(WAF)直接阻擋以下兩個路徑的 POST 請求:
/mcp-rest/test/connection/mcp-rest/test/tools/list這一切並非虛構的理論威脅,這是一場正在進行式的真實攻擊。在這個漏洞面前,沒有帳號密碼的保護,你的 AI 大門形同敞開。
Comments
0 comments