// 威脅簡報

MetaMCP inspector 代理端點命令注入:用請求帶來的參數直接啟動程式,可在容器內執行指令

CVSS
9.8 CRITICAL
CISA KEV
未列入
弱點類型
CWE-78 · CWE-94

PlainCVE 團隊 · 發布 2026-10-07 · AI 輔助 · 媒體簡報 ↓

AI 審稿 2026-10-07(未經人工)指令測試:未提供漏洞重現:未進行驗證紀錄 ↓

MetaMCP 的 inspector 代理端點直接拿請求帶來的參數啟動程式,攻擊者可能藉此在應用程式容器內執行指令;目前沒有修補版本。

誰會中自行架設 metatool-ai MetaMCP 2.4.22(含)以前版本的組織,特別是 /mcp-proxy/ 路徑能從公開網路連到的部署。攻擊需要一個有效的登入工作階段(研究者的說法,與 PlainCVE 判讀的 v2.4.22 程式碼一致);不過預設開放自行註冊,門檻可能很低。CVE 紀錄中 CISA ADP 的 CVSS 評為不需權限(PR:N),與程式碼不符。
後果研究者表示,攻擊者可能在應用程式容器內執行指令、讀到容器內的機密(例如資料庫帳密與認證簽章密鑰),也可能存取租戶資料或偽造登入工作階段。研究者的示範沒有取得主機的 root 權限。
現在該做什麼截至 2026-09-22 研究者未找到修補版本,我們查閱的來源中也沒有列出修補版本。研究者建議:在反向代理封鎖 /mcp-proxy/、關閉開放註冊、只在受信任網路內部署;曾對外暴露的部署要輪替環境中所有機密。
受影響版本2.4.22(含)以前;研究者另指出 ai-dev 分支的 commit ff4ff2d 也受影響
修好的版本尚無(截至 2026-09-22 研究者未找到修補版本)
CVSS 向量
顯示完整向量CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
時間點
  • 首次公開 2026-09-29

藍隊應對手冊

確認、修補 / 緩解、應變、強化。版本符合受影響條件不等於已被入侵;檢查沒有結果也不等於安全,每一項都有能證明與不能證明的範圍。標記的步驟對應下方攻擊流程裡可以擋下攻擊的那一步。

DETECT確認我受影響嗎?有沒有入侵跡象?
  1. 01確認版本與曝險條件

    MetaMCP 2.4.22(含)以前都在受影響範圍。PlainCVE 的判斷:官方發布頁上最新版就是 2.4.22,所以目前所有已發布版本應該都受影響。再確認 /mcp-proxy/ 是否能從公開網路連到、是否開放自行註冊。

    唯讀查詢
    docker image ls | grep -i metamcp
  2. 02搜尋存取紀錄中的 STDIO 代理請求

    在反向代理的存取紀錄中找出對 /mcp-proxy/server/stdio 的請求,特別是來自外部或新註冊帳號的請求。各來源都沒有提供官方偵測指引,這是 PlainCVE 依受影響端點整理的檢查方式。

    唯讀查詢
    grep -F '/mcp-proxy/server/stdio' /var/log/nginx/access.log
MITIGATE修補 / 緩解先修補;還不能修補時先擋住
  1. 01在反向代理封鎖 /mcp-proxy/

    研究者建議:在修補出現前,於反向代理擋掉外部對 /mcp-proxy/ 開頭路徑的存取。

  2. 02關閉開放自行註冊

    研究者建議關閉預設開啟的自行註冊,避免陌生人自己建立帳號取得工作階段。

  3. 03只在受信任網路內部署

    研究者建議在修補前限制公開存取,只讓受信任網路連到 MetaMCP。

RESPOND應變發現入侵跡象時
  1. 01輪替環境中的所有機密

    研究者建議:曾對外暴露的部署,要輪替環境中所有機密,包括資料庫帳密與認證簽章密鑰。研究者也表示,成功利用可能讓攻擊者偽造工作階段。PlainCVE 的建議(非研究者原文):輪替後,把輪替前建立的工作階段視為不可信。

HARDEN強化長期避免同類問題
  1. 01追蹤修補,並確認修法方向

    研究者建議的修法是改從使用者已儲存的伺服器紀錄取得程式參數,或完全移除 inspector 代理的原始程式執行功能。維護者發布更新時,可對照是否採用這類做法。

  2. 02不要讓 MCP 管理介面直接暴露在網際網路

    PlainCVE 的建議(延伸自研究者「限制公開存取、只在受信任網路內部署」的建議):像 inspector 這類偵錯、管理用途的功能,不要讓它從公開網路連到。

完整修復步驟與說明

目前尚未找到修補版本,我們查閱的來源中也沒有維護者公告。各項措施(封鎖 /mcp-proxy/、關閉自行註冊、只在受信任網路內部署、輪替機密)來自研究者;以下的先後順序與理由是 PlainCVE 的建議。

  1. 先擋路徑,再關註冊。 封鎖 /mcp-proxy/ 能直接切斷攻擊路徑;關閉自行註冊則能提高門檻,但已經存在的帳號(包括先前自行註冊的陌生帳號)仍有工作階段,光關註冊並不夠,所以兩者都要做。
  2. 先輪替,還是先封鎖? 先封鎖、再輪替。若在路徑還開著時就輪替,新的機密可能再次外洩。研究者建議的輪替範圍包括資料庫帳密與認證簽章密鑰。換掉簽章密鑰後既有登入會不會失效,我們查閱的來源沒有說明。
  3. 等修補時。 維護者發布新版時,確認它是否改成從使用者自己的伺服器紀錄取參數,或移除了原始程式執行功能。

攻擊流程

從左到右是攻擊發生的順序。藍色盾牌代表這一步可以被擋下,越早擋下越好。點圖示可看細節。

由上到下是攻擊發生的順序。藍色盾牌代表這一步可以被擋下,越早擋下越好。點圖示可看細節。

MetaMCP inspector 代理端點命令注入:用請求帶來的參數直接啟動程式,可在容器內執行指令: 1. 取得一個登入工作階段 → 2. 從公開前端連到 inspector 代理路徑 → 3. STDIO 處理程式照請求內容啟動程式 → 4. 指令在應用程式容器內執行 → 5. 讀取容器內的機密CVE-2026-79538 · MetaMCP inspector 代理端點命令注入:用請求帶來的參數直接啟動程式,可在容器內執行指令攻擊者你的系統取得一個登入工作階段 — 研究者表示需要任何一個有效的使用者工作階段。預設設定開放以 email 與密碼自行註冊,而且可能不需驗證 email,所以匿名訪客可能自己就能取得帳號。v2.4.22 程式碼中,/mcp-proxy/server 路由(含 /stdio)都套用 betterAuthMcpMiddleware,沒有登入工作階段的請求會被拒絕(回 401),與研究者說法一致;CVE 紀錄中 CISA ADP 的 CVSS 評為不需權限(PR:N),與程式碼不符。 1取得一個登入工作階段從公開前端連到 inspector 代理路徑 — 研究者指出,前端會把 inspector 代理路由轉送給後端,因此在公開的前端連接埠上就能連到 /mcp-proxy/。 2從公開前端連到inspector 代理路徑STDIO 處理程式照請求內容啟動程式 — 研究者指出,GET /mcp-proxy/server/stdio 的處理程式直接採用請求中的程式參數,沒有改從呼叫者自己擁有的伺服器紀錄查出,也沒有比對允許清單。 3STDIO 處理程式照請求內容啟動程式指令在應用程式容器內執行 — 研究者示範時,程式在一個非特權的應用程式容器內執行,沒有取得主機 root 權限。 4指令在應用程式容器內執行讀取容器內的機密 — 研究者表示,成功利用可能洩漏容器內的機密,也可能讓攻擊者存取租戶資料或偽造工作階段。研究者在受控環境中重現了機密外洩。 5讀取容器內的機密攻擊路徑可在此擋下PlainCVE · plaincve.date/vulns/cve-2026-79538-metamcp-inspector-proxy-rce · CC BY 4.0
MetaMCP inspector 代理端點命令注入:用請求帶來的參數直接啟動程式,可在容器內執行指令: 1. 取得一個登入工作階段 → 2. 從公開前端連到 inspector 代理路徑 → 3. STDIO 處理程式照請求內容啟動程式 → 4. 指令在應用程式容器內執行 → 5. 讀取容器內的機密CVE-2026-79538 · MetaMCP inspector 代理端點命令注入:用請求帶來的參數直接啟動程式,可在容器內執行指令取得一個登入工作階段 — 研究者表示需要任何一個有效的使用者工作階段。預設設定開放以 email 與密碼自行註冊,而且可能不需驗證 email,所以匿名訪客可能自己就能取得帳號。v2.4.22 程式碼中,/mcp-proxy/server 路由(含 /stdio)都套用 betterAuthMcpMiddleware,沒有登入工作階段的請求會被拒絕(回 401),與研究者說法一致;CVE 紀錄中 CISA ADP 的 CVSS 評為不需權限(PR:N),與程式碼不符。 1攻擊者取得一個登入工作階段從公開前端連到 inspector 代理路徑 — 研究者指出,前端會把 inspector 代理路由轉送給後端,因此在公開的前端連接埠上就能連到 /mcp-proxy/。 2攻擊者從公開前端連到 inspector 代理路徑STDIO 處理程式照請求內容啟動程式 — 研究者指出,GET /mcp-proxy/server/stdio 的處理程式直接採用請求中的程式參數,沒有改從呼叫者自己擁有的伺服器紀錄查出,也沒有比對允許清單。 3你的系統STDIO 處理程式照請求內容啟動程式指令在應用程式容器內執行 — 研究者示範時,程式在一個非特權的應用程式容器內執行,沒有取得主機 root 權限。 4你的系統指令在應用程式容器內執行讀取容器內的機密 — 研究者表示,成功利用可能洩漏容器內的機密,也可能讓攻擊者存取租戶資料或偽造工作階段。研究者在受控環境中重現了機密外洩。 5攻擊者讀取容器內的機密攻擊路徑可在此擋下PlainCVE · CC BY 4.0plaincve.date/vulns/cve-2026-79538-metamcp-inspector-proxy-rce
圖片可自由用於報導與教學,採 CC BY 4.0,圖上已附出處。
  1. 攻擊者

    取得一個登入工作階段

    研究者表示需要任何一個有效的使用者工作階段。預設設定開放以 email 與密碼自行註冊,而且可能不需驗證 email,所以匿名訪客可能自己就能取得帳號。v2.4.22 程式碼中,/mcp-proxy/server 路由(含 /stdio)都套用 betterAuthMcpMiddleware,沒有登入工作階段的請求會被拒絕(回 401),與研究者說法一致;CVE 紀錄中 CISA ADP 的 CVSS 評為不需權限(PR:N),與程式碼不符。

    防禦: 關閉開放自行註冊(研究者建議)。

  2. 攻擊者

    從公開前端連到 inspector 代理路徑

    研究者指出,前端會把 inspector 代理路由轉送給後端,因此在公開的前端連接埠上就能連到 /mcp-proxy/。

    防禦: 在反向代理封鎖外部對 /mcp-proxy/ 的存取;只在受信任網路內部署。

  3. 你的系統

    STDIO 處理程式照請求內容啟動程式

    研究者指出,GET /mcp-proxy/server/stdio 的處理程式直接採用請求中的程式參數,沒有改從呼叫者自己擁有的伺服器紀錄查出,也沒有比對允許清單。

    防禦: 目前沒有官方修補。研究者建議的程式修正:改從呼叫者已儲存的伺服器紀錄取得參數,或完全移除這個原始程式執行功能。

  4. 你的系統

    指令在應用程式容器內執行

    研究者示範時,程式在一個非特權的應用程式容器內執行,沒有取得主機 root 權限。

  5. 攻擊者

    讀取容器內的機密

    研究者表示,成功利用可能洩漏容器內的機密,也可能讓攻擊者存取租戶資料或偽造工作階段。研究者在受控環境中重現了機密外洩。

    防禦: 輪替曾暴露部署環境中的所有機密,包括資料庫帳密與認證簽章密鑰(研究者建議)。

影響範圍

條件是否受影響
MetaMCP 2.4.22(含)以前受影響(CVE 紀錄)
ai-dev 分支 commit ff4ff2d受影響(研究者指出)
任何修補版本截至 2026-09-22 研究者未找到,各來源也沒有列出修補版本

PlainCVE 的判斷:維護者的發布頁上最新版就是 2.4.22,因此目前所有已發布的版本應該都在受影響範圍內。這是本站的推論,不是維護者的說法;維護者的程式庫與發布頁目前都沒有提到這個 CVE。

風險最高的是:/mcp-proxy/ 能從公開網路連到,而且開放自行註冊的部署。研究者指出前端會把這些路由轉給後端,所以在公開的前端連接埠就能連到。

原理

MetaMCP 用來集中管理多個 MCP 伺服器(MCP 是讓 AI 呼叫外部工具的協定)。它內建一個「inspector 代理」,讓使用者測試連線。其中一種連線方式叫 STDIO:在伺服器上啟動一個程式,再透過它的標準輸入/輸出交換訊息。

根據研究者的分析,GET /mcp-proxy/server/stdio 的處理程式(routers/mcp-proxy/server.ts 中 createTransport 的 STDIO 分支)直接採用請求裡帶來的程式參數來啟動程式。它沒有去查「這個使用者自己儲存過哪個伺服器設定」,也沒有用允許清單過濾。結果就是由使用者決定伺服器要執行什麼。研究者將其歸類為命令注入(CWE-78)與程式碼注入(CWE-94);CVE 紀錄(CISA ADP)只列 CWE-94。

有問題的思路(概念示意,不是原始程式碼):

展開程式碼範例(ts)
// 程式要怎麼啟動,全由請求決定
const params = readProcessParamsFrom(request);
startStdioProcess(params);

修好的思路(研究者建議的方向,尚未有官方實作):

展開程式碼範例(ts)
// 只從「這個使用者自己儲存的伺服器紀錄」取得參數
const record = loadSavedServer(request.serverId, { owner: session.userId });
if (!record) reject();
startStdioProcess(record.params);

研究者另一個建議是:乾脆把 inspector 代理中直接執行程式的功能整個移除。研究者也指出,這和上游 MCP Inspector 的 CVE-2025-49596 屬於同一類問題。

需要有效的登入工作階段。 研究者認為需要任何一個有效工作階段(CVSS 9.9,PR:L、範圍改變 S:C)。PlainCVE 查看 v2.4.22 的原始碼:apps/backend/src/routers/mcp-proxy/server.ts 在定義任何路由(包括 /stdio)之前就以 serverRouter.use(betterAuthMcpMiddleware) 套用驗證中介層;apps/backend/src/middleware/better-auth-mcp.middleware.ts 在沒有工作階段 cookie、工作階段驗證失敗或沒有使用者資料時都回 401,沒有看到例外條件。這與研究者的說法一致。CVE 紀錄中 CISA ADP 的評分認為不需要權限(CVSS 9.8,PR:N、S:U),與程式碼不符。不過預設開放自行註冊,而且可能不需驗證 email,所以門檻可能很低。

研究者的示範中,指令在非特權的應用程式容器內執行,沒有取得主機 root 權限;但容器內的機密可能外洩,也可能被用來存取租戶資料或偽造工作階段。

時間軸

日期事件
2026-08-24研究者向 MITRE 與專案維護者回報
2026-08-25CVE 紀錄顯示編號保留
2026-09-10研究者表示 MITRE 指派 CVE 編號
2026-09-22Traceforce 研究者文章標示的日期;當時未找到修補版本(維護者沒有發布專案公告)
2026-09-29CVE 紀錄公開(本頁的首次公開日期,依 CVE 紀錄 datePublished);CISA 的 SSVC 評估記錄實際利用狀態為「none」
2026-10-01仍未列入 CISA KEV

延伸閱讀

  • 評分差異:CVE 紀錄(CISA ADP)為 CVSS 3.1 9.8(AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H);研究者自評 9.9(AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H)。差別在於是否需要登入,以及影響是否超出原本的元件。本頁依 v2.4.22 程式碼(對 /mcp-proxy/server 路由套用登入驗證中介層)寫成需要登入,與研究者的 PR:L 一致;頁首的分數仍列 CVE 紀錄(CISA ADP)的 9.8。
  • CWE 差異:CISA ADP 只列 CWE-94;研究者列 CWE-78 與 CWE-94。
  • 利用狀況:CISA KEV 未收錄;CVE 紀錄中 CISA ADP 的 SSVC 記為無實際利用(Exploitation: none);彙整網站 The Hacker Wire 表示尚未確認有公開利用程式。是否曾在修補前遭利用,沒有證據可判斷。
  • GitHub Advisory Database 列出的 EPSS(未來 30 天遭利用的估計機率)約 0.4%。
  • 發現者:Traceforce 的 Abhijeet Kumar。
  • 相關漏洞:CVE-2025-49596(MCP Inspector 代理啟動程式的遠端程式碼執行)。

驗證紀錄 AI 依審稿規則逐項核對來源,全部通過;未經人工審稿,也尚未在我們的環境重現

AI 審稿2026-10-07 · 審稿規則

驗證紀錄只寫環境與結果,不公開重現步驟或可攻擊他人系統的程式。詳見 政策.

來源

  1. CVE / NVD / OSVCVE-2026-79538 Record (CVE Services API) · CVE Program / MITRE, 2026-09-29 · 查閱 2026-10-01
  2. 研究文章CVE-2026-79538: Authenticated OS command injection and container RCE in metatool-ai/metamcp · Traceforce, 2026-09-22 · 查閱 2026-10-01
  3. 廠商說明metatool-ai/metamcp releases · metatool-ai (GitHub) · 查閱 2026-10-01
  4. 廠商說明metamcp v2.4.22 source, apps/backend/src/routers/mcp-proxy/server.ts · metatool-ai (GitHub) · 查閱 2026-10-07
  5. 廠商說明metamcp v2.4.22 source, apps/backend/src/middleware/better-auth-mcp.middleware.ts · metatool-ai (GitHub) · 查閱 2026-10-07
  6. 其他GitHub Advisory Database entry for CVE-2026-79538 · GitHub · 查閱 2026-10-01
  7. 其他CVE-2026-79538 threat entry · OffSeq Radar · 查閱 2026-10-01
  8. 新聞報導CVE-2026-79538 · The Hacker Wire · 查閱 2026-10-01

媒體簡報

一句話

MetaMCP 是一套用來集中管理 MCP 伺服器(讓 AI 呼叫外部工具的服務)的開源軟體。研究者發現它內建的 inspector 代理端點會直接依照請求內容啟動程式,攻擊者可能藉此在應用程式容器內執行指令並讀取機密。2.4.22(含)以前版本受影響;截至 2026 年 9 月 22 日,研究者尚未找到修補版本。目前沒有遭實際利用的報告,也未列入 CISA 已知遭利用漏洞清單。

關鍵數字

嚴重度
CVSS 3.1 9.8(CVE 紀錄);研究者自評 9.9 cveawg.mitre.org
受影響版本
2.4.22(含)以前 cveawg.mitre.org
修補狀態
截至 2026-09-22 無修補版本 traceforce.ai
CVE 公開
2026-09-29 cveawg.mitre.org
發現者
Abhijeet Kumar(Traceforce) traceforce.ai
EPSS
約 0.4%(GitHub Advisory Database) api.github.com

已確認

  • CVE 紀錄確認 MetaMCP 2.4.22(含)以前的 GET /mcp-proxy/server/stdio 端點有程式碼執行漏洞。
  • 研究者在受控環境中重現了容器內的指令執行與機密外洩。
  • 截至 2026-10-01 未列入 CISA KEV;CISA 的 SSVC 評估記錄的實際利用狀態為「none」。

尚未確認 / 說法不一

  • 登入檢查在實際部署中是否有例外:PlainCVE 讀過的 v2.4.22 驗證中介層程式碼沒有例外條件,但我們沒有在實際部署中測試。
  • 我們查閱的來源中沒有維護者公告、修補 commit 或修補版本,維護者的頁面也沒有提到此 CVE。
  • 沒有證據顯示此漏洞在修補前是否曾遭利用;也尚未確認有公開的利用程式。

可引用的一句話

一個本來用來偵錯的端點,卻讓使用者自己決定伺服器要執行什麼程式。

圖片

下載分享圖(PNG) · 攻擊流程圖(可下載)

引用時請標示「PlainCVE」並附上本頁連結。 完整引用格式見下方「如何引用本頁」。有事實錯誤請回報.

如何引用本頁

本文採 CC BY 4.0,轉載請保留署名與連結。

PlainCVE 團隊(2026)。《MetaMCP inspector 代理端點命令注入:用請求帶來的參數直接啟動程式,可在容器內執行指令》。PlainCVE。https://plaincve.date/vulns/cve-2026-79538-metamcp-inspector-proxy-rce(查閱日期:YYYY-MM-DD)
BibTeX
@misc{cve202679538metamcpinspectorproxyrce2026,
  title  = {MetaMCP inspector 代理端點命令注入:用請求帶來的參數直接啟動程式,可在容器內執行指令},
  author = {PlainCVE 團隊},
  year   = {2026},
  howpublished = {PlainCVE},
  url    = {https://plaincve.date/vulns/cve-2026-79538-metamcp-inspector-proxy-rce},
  note   = {更新於 2026-10-07}
}