// 威脅簡報

Hermes Agent 內建 MCP 目錄釘選分支而非 commit:上游若被接管,安裝就會執行別人的程式碼

CVSS
9.0 CRITICAL
CISA KEV
未列入
弱點類型
CWE-494

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

人工審稿 2026-09-24指令測試:未提供漏洞重現:未進行驗證紀錄 ↓

Hermes Agent 內建 MCP 目錄的 n8n 橋接項目指向會變動的分支;若上游儲存庫被接管,安裝時就會執行對方放進去的程式碼。目前沒有遭利用的紀錄。

誰會中在 Hermes Agent 0.18.2 以上、0.19.0 以前(日曆版號 2026.7.7.2 至 2026.7.20 前)透過內建目錄安裝或重新安裝 n8n 橋接項目的使用者。2026 年 5 月下旬起、早於 0.18.2 的版本可能也有同樣問題,但官方範圍未涵蓋,尚未確認。
後果前提是上游儲存庫真的被攻擊者控制。若如此,安裝 n8n 項目時會在你的電腦上以你的權限執行任意程式碼。目前沒有任何來源指出上游曾遭入侵。
現在該做什麼升級到 Hermes Agent 0.19.0(2026.7.20)以上;檢查是否裝過 n8n 橋接項目,若有,考慮改用 n8n-official 或移除它。
查看依據(4)
  • 廠商 / 維護者Hermes 文件:安裝目錄項目就是執行清單指定的內容,安裝前應先閱讀清單you should still read the manifest before installinghermes-agent.nousresearch.com
  • 廠商 / 維護者Hermes 文件指向 n8n-official 項目,透過 HTTP 與 OAuth 連線,不需要本機橋接程式No local bridge or n8n API key is required.hermes-agent.nousresearch.com
  • 廠商 / 維護者n8n 橋接項目已於 2026-09-19 從目錄下架,無法再從目錄重裝;commit 沒有說明安全理由Stop offering the third-party bridge for new catalog installs.github.com
  • 本站判斷檢查是否裝過 n8n 橋接、改用 n8n-official 或移除、預防性輪替 n8n API 金鑰,都是本站的建議;Nous Research 沒有針對本漏洞發布官方公告或指引
受影響版本官方範圍:0.18.2 以上、0.19.0 以前(日曆版號 2026.7.7.2 以上、2026.7.20 以前)。2026-05-26 起納入目錄的更早版本可能也受影響(未確認)。
查看依據(4)
  • CVE 紀錄CVE 紀錄(VulnCheck):0.18.2 以上、0.19.0 以前的內建 MCP 目錄受影響Hermes Agent 0.18.2 prior to 0.19.0 contains a supply chain vulnerability in its bundled MCP catalogcveawg.mitre.org
  • CVE 紀錄同一份 CVE 紀錄的結構化欄位:0.18.2 起、低於 0.19.0,與說明文字一致"version":"0.18.2","versionType":"semver","lessThan":"0.19.0"cveawg.mitre.org
  • 廠商 / 維護者目錄在 2026-05-26 首次加入時,n8n 項目就已經寫 ref: main;早於 0.18.2 的版本是否受影響,官方範圍沒有涵蓋,尚未確認ref: maingithub.com
  • 廠商 / 維護者Hermes 文件:目錄項目不會自動更新,所以風險發生在安裝或重新安裝的當下MCPs are never auto-updated.hermes-agent.nousresearch.com
修好的版本0.19.0(2026.7.20)以上
查看依據(3)
  • 廠商 / 維護者修補 commit 把 n8n 項目從 main 改成完整的 commit SHA,並加上強制精確釘選的測試n8n: install.ref main -> full commit SHA 7a9ae007github.com
  • 廠商 / 維護者修補後的 n8n 清單釘選在完整 40 字元的 SHAref: 7a9ae00795593aa1fdb4e61ecd640e8bfd0c3841github.com
  • 廠商 / 維護者0.19.0(2026.7.20)發布說明收錄 PR #64463,但只描述成新增 Blender,沒有提到安全修正Blender added to the MCP catalog with a curated 4-tool defaultgithub.com
CVSS 向量
顯示完整向量CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H
時間點
  • 漏洞出現 2026-07-07 · v0.18.2(v2026.7.7.2)發布,首個受影響版本 來源
  • 首次公開 2026-07-14
CISA KEV未列入(未列入 KEV 不代表沒有被利用)
查看依據(3)
  • 本站判斷本站 2026-09-24 的 CISA KEV 快照沒有這個 CVE;未列入不代表沒有被利用
  • CERT / 政府CISA 在 CVE 紀錄中的評估:利用狀態為「無」"Exploitation":"none"cveawg.mitre.org
  • 本站判斷沒有任何來源指出上游儲存庫 CyberSamuraiX/hermes-n8n-mcp 曾遭入侵,也沒有來源把本 CVE 與攻擊活動連結

藍隊應對手冊

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

DETECT確認我受影響嗎?有沒有入侵跡象?
  1. 01確認是否裝過 n8n 橋接項目

    Hermes 把 MCP 伺服器設定放在 ~/.hermes/config.yaml 的 mcp_servers 底下;互動式的 hermes mcp 選單也會顯示每個項目的狀態(可用、已啟用、已安裝但停用)。沒有裝過 n8n 橋接項目,就不在這個問題的範圍內。

    唯讀查詢
    grep -n -i 'n8n' ~/.hermes/config.yaml
  2. 02確認安裝時用的 Hermes 版本

    官方受影響範圍是 0.18.2 以上、0.19.0 以前。如果你是在 2026 年 5 月下旬之後、0.18.2 之前的版本安裝,也可能拿到同一個未釘選的項目(未確認)。目前沒有官方公布的入侵指標(IoC),因為沒有已知的入侵事件。

MITIGATE修補 / 緩解先修補;還不能修補時先擋住
  1. 01升級到 0.19.0(2026.7.20)以上

    修補後 n8n 項目改為固定 commit SHA,並新增測試強制所有目錄清單精確釘選。注意:升級 Hermes 不會替換已經安裝的 n8n 橋接程式。

  2. 02改用 n8n-official 或移除舊橋接

    n8n 橋接項目已於 2026-09-19 從目錄下架,無法再從目錄重新安裝。官方文件指向新的 n8n-official 項目,它透過 HTTP 與 OAuth 連線,不需要本機橋接程式。可在 hermes mcp 選單中解除安裝或停用,或從 config.yaml 刪除。這是 PlainCVE 的建議,不是官方針對本漏洞的指引。

RESPOND應變發現入侵跡象時
  1. 01預防性輪替 n8n API 金鑰

    若想多一層保障,輪替存放在 ~/.hermes/.env 的 n8n API 金鑰。這是 PlainCVE 的預防性建議,並不代表上游曾遭入侵;目前沒有任何來源這樣說。

HARDEN強化長期避免同類問題
  1. 01安裝前閱讀 MCP 清單

    官方文件提醒:安裝目錄項目就是執行清單指定的內容。安裝前先看 source: 指向哪個儲存庫、install.bootstrap: 會跑哪些指令。

  2. 02限制本機 MCP 伺服器能拿到的東西

    使用各伺服器的工具篩選;stdio 伺服器只會收到你明確設定的環境變數加上一組安全的基本變數,不要多給。

  3. 03自己的依賴也用不可變的釘選

    修補採用的做法可以照搬:git 依賴用完整 SHA、套件啟動器(uvx、npx 等)用精確版本、用自動測試強制,並等新版本發布約兩週再釘選(冷卻期)。

完整修復步驟與說明
  1. 升級不等於清掉舊的 n8n 橋接。 升級到 0.19.0(2026.7.20)以上可修正目錄本身,但已經安裝的 n8n 橋接不會被替換,因為目錄項目不會自動更新。
  2. n8n 橋接已無法從目錄重裝。 它在 2026-09-19 被下架(commit 8d4abc3 沒有說明安全理由)。既有安裝的設定會保留;要繼續串接 n8n,官方文件指向 n8n-official,它用 HTTP 加 OAuth 連線,不需本機橋接程式。
  3. 相關檔案位置。 MCP 設定在 ~/.hermes/config.yamlmcp_servers;憑證在 ~/.hermes/.env
  4. 沒有官方的暫時緩解或入侵指標 因為沒有已知的入侵事件,也沒有來源公布任何 IoC。上方「檢查、改用、輪替金鑰」都是 PlainCVE 的建議,不是 Nous Research 的官方指引。

攻擊流程

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

Hermes Agent 內建 MCP 目錄釘選分支而非 commit:上游若被接管,安裝就會執行別人的程式碼: 1. (假設情境)攻擊者取得上游儲存庫的控制權 → 2. 把惡意變更推上 main 分支 → 3. 使用者在受影響版本上安裝 n8n 目錄項目 → 4. Hermes 複製分支並執行 bootstrap 指令 → 5. 橋接程式以使用者權限在本機執行CVE-2026-82021 · Hermes Agent 內建 MCP 目錄釘選分支而非 commit:上游若被接管,安裝就會執行別人的程式碼攻擊者你的系統(假設情境)攻擊者取得上游儲存庫的控制權 — n8n 項目從第三方儲存庫 CyberSamuraiX/hermes-n8n-mcp 安裝。這是利用的前提;沒有任何來源指出這件事真的發生過。 1(假設情境)攻擊者取得上游儲存庫的控制權把惡意變更推上 main 分支 — 分支名稱像一張會被移動的書籤,推上新的 commit 後,「main」就指向新的程式碼。 2把惡意變更推上 main分支使用者在受影響版本上安裝 n8n 目錄項目 — 執行 hermes mcp install 時,Hermes 依照清單(manifest)中的 ref: main 抓取程式碼。已裝好的副本不會自動更新,所以風險發生在安裝或重新安裝的當下(PlainCVE 的推論)。 3使用者在受影響版本上安裝 n8n 目錄項目Hermes 複製分支並執行 bootstrap 指令 — 例如建立 Python 虛擬環境、安裝套件。此時上游分支上有什麼,就執行什麼,沒有完整性檢查。 4Hermes 複製分支並執行bootstrap 指令橋接程式以使用者權限在本機執行 — 本機 MCP 伺服器就是電腦上的一般程序,若程式碼被換掉,可以做到使用者本人能做的事。 5橋接程式以使用者權限在本機執行攻擊路徑可在此擋下PlainCVE · plaincve.date/vulns/cve-2026-82021-hermes-agent-mcp-unpinned-branch · CC BY 4.0
圖片可自由用於報導與教學,採 CC BY 4.0,圖上已附出處。
  1. 攻擊者

    (假設情境)攻擊者取得上游儲存庫的控制權

    n8n 項目從第三方儲存庫 CyberSamuraiX/hermes-n8n-mcp 安裝。這是利用的前提;沒有任何來源指出這件事真的發生過。

  2. 攻擊者

    把惡意變更推上 main 分支

    分支名稱像一張會被移動的書籤,推上新的 commit 後,「main」就指向新的程式碼。

    防禦: 改為釘選完整 40 字元的 commit SHA:SHA 固定指向一份已審查的程式碼,無法被上游移動。

  3. 你的系統

    使用者在受影響版本上安裝 n8n 目錄項目

    執行 hermes mcp install 時,Hermes 依照清單(manifest)中的 ref: main 抓取程式碼。已裝好的副本不會自動更新,所以風險發生在安裝或重新安裝的當下(PlainCVE 的推論)。

    防禦: 升級到 0.19.0(2026.7.20)以上,目錄改用固定 SHA,並有自動測試強制所有項目都要精確釘選。

  4. 你的系統

    Hermes 複製分支並執行 bootstrap 指令

    例如建立 Python 虛擬環境、安裝套件。此時上游分支上有什麼,就執行什麼,沒有完整性檢查。

    防禦: 安裝前先閱讀清單中的 source: 與 install.bootstrap:(官方文件建議)。

  5. 你的系統

    橋接程式以使用者權限在本機執行

    本機 MCP 伺服器就是電腦上的一般程序,若程式碼被換掉,可以做到使用者本人能做的事。

    防禦: 只給 stdio 伺服器必要的環境變數;若有疑慮,輪替存在 ~/.hermes/.env 的 n8n API 金鑰。

影響範圍

條件是否受影響
Hermes Agent 0.18.2 以上、0.19.0 以前(日曆版號 2026.7.7.2 以上、2026.7.20 以前),並從目錄安裝或重新安裝 n8n 橋接項目受影響(官方範圍)
2026-05-26 之後、0.18.2 之前含 MCP 目錄的版本,並安裝了 n8n 項目可能受影響;程式碼歷史顯示同一個未釘選項目早已存在,但 CVE 紀錄的範圍從 0.18.2 起算,未確認
Hermes Agent 0.19.0(2026.7.20)以上已修補
從未安裝 n8n 橋接項目不受此問題影響;沒有來源指出其他目錄項目實際受影響

要讓風險成真,兩件事必須同時成立:你在受影響版本上安裝了 n8n 項目,而且當時上游儲存庫 CyberSamuraiX/hermes-n8n-mcpmain 分支上有惡意程式碼。目前沒有任何來源指出上游曾遭入侵,也沒有遭利用的紀錄;本漏洞未列入 CISA KEV

原理

Hermes Agent 有一份 Nous Research 核准的 MCP 目錄。MCP(Model Context Protocol)是讓 AI 呼叫外部工具的協定,目錄中的每個項目是一份清單檔(manifest),寫明要從哪裡下載程式碼、要跑哪些安裝指令。使用者執行 hermes mcp install <名稱> 時,Hermes 會複製清單指定的 git 儲存庫、執行 bootstrap 指令(例如建立 Python 虛擬環境、安裝套件),然後把它當成本機程序執行。

問題出在 n8n 項目寫的是 ref: mainmain 是一個分支,像一張可以被移動的書籤:上游每推一次新 commit,它就指向新的程式碼。因此 Nous 審查通過的是某一天的程式碼,使用者安裝時拿到的卻是「那個當下分支上的任何東西」,中間沒有任何完整性檢查。這對應 CWE-494(下載程式碼未做完整性檢查)。

有趣的是,建立目錄的 PR #30870 本身就寫明 git 項目要「釘選、絕不浮動於 main」,但它的範例與實際出貨的 n8n 項目卻都用了 ref: main

有問題的寫法(概念示意,不是原始檔案):

展開程式碼範例(yaml)
source: <第三方 git 儲存庫>
install:
  ref: main          # 分支,上游可以隨時改變它指向的程式碼

修好的寫法:

展開程式碼範例(yaml)
source: <第三方 git 儲存庫>
install:
  ref: <完整 40 字元的 commit SHA>   # 固定指向一份已審查的快照,無法被移動

修補(commit 9df5f87)還加了一個自動測試,檢查每份出貨清單:git 安裝必須用完整 SHA;uvx、npx、pipx、bunx、pnpx 這類套件啟動器必須寫精確版本;走 HTTP 連線的項目例外。文件也建議新釘選的版本至少要發布兩週。

風險發生在安裝或重新安裝的當下。 CVE 描述與 VulnCheck 公告說,上游儲存庫被接管後,惡意程式碼會送到每一台「安裝」受影響目錄項目的主機,之後不需操作者再做什麼。Hermes 文件與 PR #30870 則說目錄項目「從不自動更新」,要重新執行安裝才會更新。兩者並不衝突:安裝時會從上游抓最新的程式碼,而已經裝好的副本不會自己改變。所以要留意的是上游被接管期間的每一次安裝或重新安裝。CVSS 向量中的「需要使用者互動」也與此相符。

時間軸

日期事件
2026-05-26MCP 目錄加入(PR #30870),n8n 項目以 ref: main 出貨
2026-07-07釋出 v0.18.2 / v2026.7.7.2(官方受影響範圍起點;該版說明未提到 MCP 目錄)
2026-07-14CNA 標示的公開日期(datePublic)
2026-07-15修補 commit / PR #64463 合併
2026-07-20釋出 v0.19.0 / v2026.7.20,含修補
2026-08-28CVE 與 VulnCheck 公告公開
2026-08-31CVE 紀錄更新
2026-09-08NVD 最後修改(狀態:Deferred)
2026-09-19n8n 橋接項目從目錄下架

通報給 Nous Research 的日期不明。發現者為 Helmet Security 的 Zubair Ashraf。

延伸閱讀

  • 評分: 唯一的評分來自 CNA VulnCheck:CVSS 4.0 為 9.0(嚴重)、CVSS 3.1 為 8.3(高),是同一個評估在兩套系統下的結果。NVD 沒有自行評分,只把 VulnCheck 的分數列為次要來源,並將條目標為 Deferred。分數高是因為後果是在主機上完整執行程式碼;「攻擊複雜度高」反映攻擊者得先接管上游儲存庫。CVE 紀錄中的 CISA SSVC 資料:利用狀態「無」、不可自動化、技術影響「完全」。
  • 沒有官方公告: Nous Research 的 GitHub 安全公告頁沒有相關條目。修補夾在標題為「新增 Blender 到 MCP 目錄」的 PR #64463 裡,v0.19.0 的發布說明也只把它當成新增 Blender,沒提到安全修正。
  • 版本寫法: CVE 描述寫「0.18.2 prior to 0.19.0」,結構化資料寫「lessThan 0.19.0」,兩者一致:0.19.0 已修補。
  • 這不是入侵事件: 沒有來源把本 CVE 與任何攻擊活動或蠕蟲連結,也沒有來源指出 CyberSamuraiX/hermes-n8n-mcp 曾遭入侵。
  • 更大的教訓: AI 代理的核准外掛清單本身就是軟體發行管道;釘選到不可變的 SHA、用自動測試強制、並設冷卻期,是標準的供應鏈防護做法。

驗證紀錄 已人工審稿、核對來源;尚未在我們的環境重現

人工審稿2026-09-24

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

來源

  1. 安全公告Hermes Agent 0.18.2 < 0.19.0 MCP Catalog Supply Chain RCE via Mutable Branch Reference · VulnCheck, 2026-08-28 · 查閱 2026-09-24
  2. 安全公告CVE-2026-82021 record (CVE Services API JSON) · CVE Program / VulnCheck (CNA), 2026-08-28 · 查閱 2026-09-24
  3. CVE / NVD / OSVNVD CVE API – CVE-2026-82021 · NIST NVD, 2026-08-28 · 查閱 2026-09-24
  4. 修補 commit / 版本feat(mcp): enforce exact version pins across the whole MCP catalog · Nous Research (GitHub), 2026-07-15 · 查閱 2026-09-24
  5. 修補 commit / 版本feat(mcp): add Blender to the MCP catalog with a curated 4-tool default (#64463) · Nous Research (GitHub), 2026-07-15 · 查閱 2026-09-24
  6. 修補 commit / 版本PR #64463 files changed · Nous Research (GitHub), 2026-07-15 · 查閱 2026-09-24
  7. 修補 commit / 版本optional-mcps/n8n/manifest.yaml at fix commit · Nous Research (GitHub), 2026-07-15 · 查閱 2026-09-24
  8. 廠商說明Hermes Agent v0.19.0 (v2026.7.20) – The Quicksilver Release · Nous Research (GitHub), 2026-07-20 · 查閱 2026-09-24
  9. 廠商說明Hermes Agent v0.18.2 (v2026.7.7.2) · Nous Research (GitHub), 2026-07-07 · 查閱 2026-09-24
  10. 廠商說明feat(mcp): Nous-approved MCP catalog with interactive picker (#30870) · Nous Research (GitHub), 2026-05-26 · 查閱 2026-09-24
  11. 其他optional-mcps/n8n/manifest.yaml as first added · Nous Research (GitHub), 2026-05-26 · 查閱 2026-09-24
  12. 其他History for optional-mcps/n8n/manifest.yaml · Nous Research (GitHub) · 查閱 2026-09-24
  13. 廠商說明fix(mcp): retire the n8n bridge catalog entry (#116048) · Nous Research (GitHub), 2026-09-19 · 查閱 2026-09-24
  14. 廠商說明Security advisories · NousResearch/hermes-agent · Nous Research (GitHub) · 查閱 2026-09-24
  15. 廠商說明MCP (Model Context Protocol) – Hermes Agent docs · Nous Research · 查閱 2026-09-24

媒體簡報

一句話

Hermes Agent 是 Nous Research 的開源 AI 代理程式,內建一份經官方核准、可一鍵安裝的 MCP 外掛目錄。其中 n8n 橋接項目指向第三方儲存庫會變動的分支,而不是固定版本;若該儲存庫落入攻擊者手中,使用者安裝時就會在自己電腦上執行惡意程式碼。這是一個釘選設計上的弱點,目前沒有任何來源指出上游曾遭入侵或有人實際利用,也未列入 CISA 已知遭利用漏洞清單。修補版 0.19.0 已於 2026 年 7 月 20 日釋出。

關鍵數字

嚴重度
CVSS 4.0 9.0 / CVSS 3.1 8.3(CNA:VulnCheck;NVD 未自行評分) cveawg.mitre.org
弱點類型
CWE-494:下載程式碼未做完整性檢查 services.nvd.nist.gov
修補版本
0.19.0 / 2026.7.20(2026-07-20 釋出) github.com
修補合併
2026-07-15(PR #64463) github.com
CVE 公開
2026-08-28 cveawg.mitre.org
發現者
Zubair Ashraf(Helmet Security) cveawg.mitre.org

已確認

  • n8n 目錄項目在修補前使用 ref: main,修補 commit 將它改為完整的 commit SHA。
  • 修補後新增自動測試,強制所有目錄清單使用精確釘選。
  • CVE 紀錄中的 CISA 評估資料標示利用狀態為「無」,本漏洞未列入 KEV
  • CVE 描述與 VulnCheck 公告說的是:上游被接管後,惡意程式碼會送到「每一台安裝受影響目錄項目的主機」,不需操作者再做什麼;並沒有說已裝好的副本會自動更新。

尚未確認 / 說法不一

  • 0.18.2 之前、2026 年 5 月下旬之後含目錄的版本是否也受影響;程式碼歷史顯示很可能是。
  • 是否有 n8n 以外的目錄項目當時也未釘選;沒有來源這樣說。
  • 通報給 Nous Research 的日期;Nous Research 也沒有發布自己的安全公告。

可引用的一句話

官方審查的是某一天的程式碼,但使用者安裝到的,是那個分支後來變成的樣子。

圖片

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

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

如何引用本頁

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

PlainCVE 團隊(2026)。《Hermes Agent 內建 MCP 目錄釘選分支而非 commit:上游若被接管,安裝就會執行別人的程式碼》。PlainCVE。https://plaincve.date/vulns/cve-2026-82021-hermes-agent-mcp-unpinned-branch(查閱日期:YYYY-MM-DD)
BibTeX
@misc{cve202682021hermesagentmcpunpinnedbranch2026,
  title  = {Hermes Agent 內建 MCP 目錄釘選分支而非 commit:上游若被接管,安裝就會執行別人的程式碼},
  author = {PlainCVE 團隊},
  year   = {2026},
  howpublished = {PlainCVE},
  url    = {https://plaincve.date/vulns/cve-2026-82021-hermes-agent-mcp-unpinned-branch},
  note   = {更新於 2026-09-24}
}