深藍色底場上的一幅生成式抽象插畫:一排向遠處退去的細長伺服器狀板塊立在隱約的藍圖格線之上,每一塊皆以纖細的青色輪廓描繪,中央懸著一片半開的小門形面板。一道寬闊的琥珀色掃描光帶水平貫穿整排,穿過敞開的面板,並在其後留下一道淡淡的虛線軌跡。左下方一個深色的小終端窗格中,有一個發著光的琥珀色游標方塊。畫面中沒有文字、數字、人物、品牌標記或組織標誌。OrcaRouter 標誌合成於右下角。
AI Safety Incidents

設計即暴露:對 414 台面向網際網路的 MCP 伺服器進行即時稽核,發現 68 個漏洞

作者

Rowan Sterling

發佈日期

最新模型 · 20查看全部模型 →
基準測試:Artificial Analysis · 每日更新
返回全部文章

於 2026年7月31日,Nicolás Padilla 發表了 《Exposed by Design》(arXiv:2608.00150);這是一份 13 頁的預印本,描述他所稱首個針對對外開放於網際網路的 Model Context Protocol 伺服器所進行的動態行為安全評估。該月的四輪量測確認有 640 台線上的生產伺服器,其中 414 台接受了主動測試;測試產生 68 個可通報的漏洞,且全數皆以 GitHub Security Advisories 向維護者提報。 414 台中的 380 台——91.8%——沒有 OAuth 驗證,且 687 個工具實例宣稱可執行 shell 卻沒有存取控制。Padilla 表示,沒有證據顯示其中任何一項曾遭利用:測試僅停留在概念驗證階段,未取得任何憑證,也未外洩任何資料。該紀錄的完整來源清單、嚴重性等級與可信度評估收錄於 AI 事件檔案庫,與同期歸檔的其他 MCP 及基礎設施發現並列。

稽核實際做了什麼

模型上下文協定(Model Context Protocol)是讓 AI 代理能呼叫託管於其他位置之工具的介面——文件搜尋、資料庫查詢、shell 輔助工具皆屬此類。以 HTTP 提供此協定、且可從網際網路存取的伺服器,實際上就是任何人都能呼叫的工具介面。Padilla 的論文主張,這類伺服器的總數從未被妥善清點過,而清點正是重點:發現才是難處,且每份較早的調查所檢視的都是不同的切片。

他的探索階段合併了十一個來源——crt.sh、Hugging Face、GitHub、npm、Smithery、PyPI、Censys、FOFA、Shodan、glama.ai 和 pulsemcp.com——理由是其中沒有任何單一來源能涵蓋整個族群。主動階段使用了Corvus,這是 Padilla 為該研究打造的框架:34 個測試模組涵蓋 10 類 MCP 特有弱點,分為 13 個靜態與 21 個動態。它發佈於 GitHub 的 CobaltoSec 組織之下,並在 PyPI 上以cobaltosec-corvus之名發佈,而該儲存庫自身的統計檔案也記錄了相同的 34 個模組數量。

這四次掃描分別於2026 年 7 月 15 日、18 日、21 日與 24 日進行。先前幾次掃描僅提供確認編號;最後三次掃描分別掃描了 3,485、3,948 與 4,110 個候選目標,並分別確認了 140、464 與 296 台線上伺服器。將 972 筆原始觀測記錄與 332 次重複出現的情況去重後,剩下 640 台不重複的已確認伺服器,其中 414 台——64.7%——接受了完整的動態測試。Padilla 將 640 視為下限。Censys 是發現來源之一,該平台在 2026 年 5 月估計全球有超過 21,000 個與 MCP 相關的端點,而他將此數字用作規模估計,而非他所測試數量的計數。

An HTML table card titled 'Four runs in July 2026', subtitled 'What each measurement pass scanned, how many servers it confirmed, and how many carried a CRITICAL finding'. Four columns: run date, candidates scanned, servers confirmed, CRITICAL findings. Rows read: 15 July, candidates not tracked, 72 confirmed, no CRITICAL count; 18 July, 3,485 candidates, 140 confirmed, 17 CRITICAL; 21 July, 3,948 candidates, 464 confirmed, 41 CRITICAL; 24 July, 4,110 candidates, 296 confirmed, 35 CRITICAL. A blue summary band beneath reads: 972 raw observations, 332 duplicate appearances, 640 unique confirmed, 414 fully audited, 68 reportable. A footer cites Nicolás Padilla, arXiv:2608.00150, submitted 31 July 2026.

若從漏斗的角度來看,這些數字才是論文真正的論點:寬鬆而低成本的一輪篩選,找到候選項目的速度,快過縝密的一輪所能測試它們的速度。640 台已確認的伺服器中,只有 414 台經過完整測試,而 Padilla 並未主張受測的子集與未受測的其餘部分相似。

它發現了什麼

主要發現是身分驗證,或者說,是身分驗證的缺失。在受測的 414 台伺服器中,有 380 台(91.8%)沒有 OAuth。論文指出,其餘大多數使用靜態 bearer token 或 API 金鑰,而且這些憑證往往可預測或是空的——一台接受固定字串的伺服器同樣算不上有意義的身分驗證。由於這項稽核只測試了無需憑證即可公開連線的伺服器,這個數字在設計上描述的是暴露在外的族群;它並不是對一般 MCP 伺服器的估計。

這 68 項可報告的發現按類別細分,而各類別的計數彼此重疊,並非將總數分割為互不相干的區塊:380 項身分驗證缺陷、52 例協定模糊測試被接受、47 項工具投毒、38 項命令注入、31 項結構描述繞過、29 項伺服器端請求偽造、24 項資源 URI 操縱、22 項提示注入、18 項權杖暴露,以及 14 項供應鏈指標。阻斷服務模組雖已撰寫,卻刻意未對正式生產伺服器執行,Padilla 基於倫理理由將其排除在外。摘要中點名的四種漏洞類型——SQL 注入、針對雲端中繼資料服務的 SSRF、提示範本注入,以及透過游標操縱的路徑遍歷——各自出現在上述類別之中。

A generated abstract illustration on a deep navy field: a translucent glass cube representing a tool sits at the centre, its faces cut by thin slots. A fine cyan cord runs from one slot across open space to a small metallic lever at upper left; a short amber spark jumps from another slot to a dark rack of cylinders at lower right. A pale dotted ring of tick marks circles the cube at a distance, a boundary the cord crosses without being stopped. No text, numbers, people, brand marks or organisation logos appear. The OrcaRouter logo is composited in the bottom-right corner.

這項殼層執行數據需要一項論文未釐清的但書。在結果章節中,640 台已確認伺服器池裡共計有 687 個具備殼層執行且未經身分驗證的工具實例。在討論章節中,同一數字先以「在 414 台經動態稽核的伺服器中」這段話引入,隨後又稱其為「更廣泛的已確認集合」。這兩種表述並不一致,而且論文從未給出受測伺服器的工具總數,因此 687 無法換算成百分比。

汰換是最能改變這些數字該如何解讀的發現。在 7 月 21 日確認的 464 台伺服器中,有 193 台——41.6%——在三天後第四次執行檢查時已經消失。41 台帶有 CRITICAL 發現的伺服器中,也有九台消失。Padilla 將此解讀為未經審核的部署;這也意味著週一確認的發現,到了週四可能已無負責人可修補。

這三個案例研究,以及可以檢查的內容

三項發現均已詳細記錄,每項皆附有 GitHub Security Advisory 識別碼。SQL 注入發生於 lectorium-corpus-mcp(GHSA-m8qh-p8m5-8c48,評級為 CRITICAL),已透過酬載 ' OR 1=1 -- 及回應大小差異確認,且未讀取或保留任何文件內容。SSRF 發生於 epwforge(GHSA-r9fx-qwmc-rvx3,HIGH),已透過計時確認:對內部中繼資料位址耗時 11.9 秒,相較於 0.3 秒的基準,且未儲存任何中繼資料回應內容。提示範本注入發生於 frootai(GHSA-5h8f-r9g8-5w5p,HIGH),補齊了這組發現。

這三個中有兩個可以直接查核。2026 年 10 月 30 日,前兩則公告頁面在 CobaltoSec 的公告儲存庫中可公開解析,兩者皆於2026 年 8 月 20 日發布,兩者仍列出「Patched versions: None」且沒有 CVE。第三則 GHSA-5h8f-r9g8-5w5p 在該位址傳回找不到。CobaltoSec 的儲存庫在同一天列出 46 則已發布公告,涵蓋 MCP 伺服器與周邊 AI 工具;該論文撰寫時將 19 則計為已公開揭露、49 則仍受禁發限制。一份針對 frootai、日期為 2026 年 7 月 28 日的掃描產物位於 Corvus 儲存庫中,因此測試確實發生過;只有公告不可見。

揭露流程本身僅以概要方式描述,而非詳細說明。全部 68 項發現都透過私人的 GitHub Security Advisories,在 90 天協調封鎖期下送交維護者;而在無法進行私下通報的情況下,Padilla 則改為在公開儲存庫開立 issue。論文以軼事方式報導,有些維護者在 24 小時內完成修補,有些則數週未回覆,还有一些儲存庫已被廢棄。文中並未提供所聯繫維護者的數量,也沒有回覆率表格,並表示這些資料將於投稿時完整報告。

該論文未能確立什麼

Exposed by Design 是一篇單一作者的預印本。arXiv 列出第 1 版,於 2026 年 7 月 31 日提交,沒有期刊出處,也沒有同儕審查聲明。該檔案庫將這筆紀錄評為信心等級 B——有文獻記載,但僅來自單一來源——而這個評級適用於本文全篇:上文的每一項數據都來自 Padilla 的論文或他公開發布的研究產物,而非來自獨立測量。

似乎沒有任何獨立新聞編輯室報導過這項研究。相關報導確實存在——forkast.news 上一篇由 AI 撰寫的分析、LinkedIn 與 Medium 貼文、一個中文資安部落格、一篇日文解說文章——但這些內容只是轉述該預印本,並未採訪作者、查核相關警示公告或補充資料。衍生報導不等於佐證。

Padilla 自己指出了這些限制,而且它們異常具體。只測試了 HTTP 傳輸;stdio 伺服器——常見的本機情境——不在範圍內。探索採盡力而為,因此 640 是下限。226 台已確認但未經完整測試的伺服器被排除,原因包括 403 回應、連線重置、不符合規範的 JSON-RPC 回覆,或單純離線;論文指出由此產生的選擇偏差無法界定。偵測依賴啟發式方法——時序預言機、差異化回應、結構描述檢查——沒有標註基準,也沒有公布 34 個模組的精確率或召回率。他所記錄的變動性削弱了個別發現結果的時間有效性。而由單一研究人員進行人工驗證,會引入他提到但未量化的確認偏誤風險。

An HTML card titled 'Established, and not', split into two columns. The left column, headed 'ESTABLISHED', lists: 414 internet-facing MCP servers dynamically tested in four July 2026 runs; 380 of them (91.8%) offered no OAuth authentication; 68 vulnerabilities filed as GitHub Security Advisories; Corvus published open source with 34 modules, 13 static and 21 dynamic; 193 of 464 servers confirmed on 21 July were gone three days later; two case-study advisories public since 20 August 2026, both unpatched. The right column, headed 'NOT ESTABLISHED', lists: that any exposed server was attacked in the wild; a total population, since 640 confirmed servers is a lower bound; 687 shell-exposing tools as a share of tested servers, since the denominators conflict; the third case-study advisory, not publicly resolvable on 30 October 2026; any independent measurement or newsroom verification; module precision or recall, since no labelled benchmark is published. A footer cites Nicolás Padilla, arXiv:2608.00150 and the CobaltoSec advisory repository.

之後有什麼改變

到目前為止,實際成果是這套工具與安全公告流。Corvus 可供安裝並附有文件說明,而 CobaltoSec 的安全公告庫在 2026 年 10 月 30 日收錄了 46 筆已發布條目,相較之下,論文於七月底統計的公開揭露為 19 筆。論文自身的兩項案例研究仍沒有修補版本;對那些伺服器而言,揭露已產生公開紀錄,但尚未帶來修復。

對防禦者而言,這項研究有用的部分在於其方法,而非其標題結論。一個僅取自無需憑證即回應的伺服器所得的 91.8% 數字,說明的是一個狹窄卻真實的情況:大多數暴露在外的東西從未被鎖上,而三天內的汰換情況顯示,其中許多是為了示範、原型或測試而架設,從未加以強化。這篇論文無法說明的是,同樣的情況是否適用於組織實際依賴的 MCP 伺服器,因為那些伺服器從未納入樣本。