// 威脅簡報

Ollama 實驗性代理模式 Bash 核准繞過:只比對指令開頭,後面串接的指令也一起被放行

CVSS
8.5 HIGH
CISA KEV
未列入
弱點類型
CWE-863
主題
AI 安全

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

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

Ollama 實驗性代理模式只看 Bash 指令的開頭就決定是否放行,攻擊者透過提示注入,就能在已核准的指令後面接上使用者沒同意的指令。

誰會中使用 Ollama 0.14.0 到 0.31.2 以前的版本,並且用 --experimental 開啟了實驗性代理模式、讓模型使用 Bash 工具的人。
後果如果攻擊者能透過提示注入影響模型的輸出,就能在你的電腦上執行你沒有核准的額外 shell 指令,繞過每次執行前要你同意的機制。
現在該做什麼升級到 0.31.2:CNA(VulnCheck)的 CVE 紀錄以 0.31.2 為受影響範圍上界,CNA 所列的修補 commit 也已包含在 v0.31.2 中;但截至 2026-10-07,Ollama 的 GitHub 安全公告頁沒有已發布的公告,發布說明也沒提到這個修補。在 Ollama 確認之前,PlainCVE 建議先不要使用 --experimental 代理模式。
受影響版本0.14.0 起、0.31.2 以前
修好的版本0.31.2(CNA VulnCheck 的 CVE 紀錄以 0.31.2 為受影響範圍上界,所列修補 commit a2b3a5e 已包含在 v0.31.2 標籤中;截至 2026-10-07,Ollama 的 GitHub 安全公告頁沒有已發布的公告)
CVSS 向量
顯示完整向量CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
時間點
  • 首次公開 2026-07-02

藍隊應對手冊

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

DETECT確認我受影響嗎?有沒有入侵跡象?
  1. 01確認版本與是否用了實驗性代理模式

    版本在 0.14.0 到 0.31.2 以前,而且曾用 --experimental 開啟代理模式、讓模型使用 Bash 工具,兩者同時成立才在受影響範圍內。

    唯讀查詢
    ollama --version
  2. 02目前沒有公開的偵測方法

    提供的來源都沒有偵測指引,也沒有包含 Ollama 針對此 CVE 的安全公告。CISA 的 SSVC 在 2026-09-29 記錄為沒有已知利用。

MITIGATE修補 / 緩解先修補;還不能修補時先擋住
  1. 01升級到 0.31.2

    CNA(VulnCheck)的 CVE 紀錄把受影響範圍定為 0.31.2 以前,所列修補 commit a2b3a5e 依 GitHub 的 git 紀錄已包含在 v0.31.2、不在 v0.31.1。截至 2026-10-07,Ollama 的 GitHub 安全公告頁沒有已發布的公告,發布說明也沒提到這個修補。

    唯讀查詢
    ollama --version
  2. 02在確認修補前,不使用 --experimental 代理模式

    代理模式需要自行開啟(v0.31.1 原始碼中,ollama run 的 --experimental 旗標預設為關閉)。不開啟就不會走到有問題的核准程式。這是 PlainCVE 的判斷,不是官方建議。

RESPOND應變發現入侵跡象時
  1. 01懷疑被利用時,把電腦當成可能已遭入侵處理

    來源沒有提供事件回應指引。由於 SSVC 把技術影響評為「total」,PlainCVE 建議:檢查代理曾執行過哪些指令,並輪替這台電腦上可取得的密碼與金鑰。這是預防性建議,不代表已確認有外洩。

HARDEN強化長期避免同類問題
  1. 01不要讓有 shell 權限的代理讀取不受信任的內容

    這個漏洞的前提是攻擊者能用提示注入影響模型輸出。PlainCVE 建議把有 Bash 工具的代理和來源不明的資料隔開。

  2. 02不要只依賴「自動允許」清單

    只比對開頭的允許清單容易被串接指令繞過。PlainCVE 建議在隔離環境中執行代理,讓每個指令都經過確認。

完整修復步驟與說明
  1. 確認版本。 執行 ollama --version,版本在 0.14.0 到 0.31.2 以前就在範圍內。
  2. 升級到 0.31.2 以上。 CNA(VulnCheck)的 CVE 紀錄把受影響範圍定為 0.31.2 以前,並列出修補 commit(a2b3a5e,2026-07-02,標題「agent: harness core (#16963)」)與 v0.31.2 的發布說明。依 GitHub 的 git 紀錄(比對),這個 commit 已包含在 v0.31.2 標籤(指向 a6293eb)中,不在 v0.31.1 裡。不過,截至 2026-10-07,Ollama 的 GitHub 安全公告頁沒有已發布的公告,0.31.2 的發布說明也沒有提到這個修補;這個 commit 有改動 x/agent/approval.go,但沒有被描述為安全修補,原始資料看不出它是否真的改正了核准邏輯。OSV 把 a6293eb 和 a2b3a5e 都列為修補。
  3. 在確認之前。 官方沒有提供暫時緩解方法。PlainCVE 的判斷是:代理模式需要自行開啟,不使用 --experimental 就不會走到這段程式。

攻擊流程

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

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

Ollama 實驗性代理模式 Bash 核准繞過:只比對指令開頭,後面串接的指令也一起被放行: 1. 攻擊者設法用提示注入影響模型的輸出 → 2. 使用者以實驗性代理模式執行,模型提出 Bash 指令 → 3. 核准機制只比對指令開頭,沒有解析 shell 語法 → 4. 未經核准的額外指令在本機執行CVE-2026-102697 · Ollama 實驗性代理模式 Bash 核准繞過:只比對指令開頭,後面串接的指令也一起被放行攻擊者你的系統攻擊者設法用提示注入影響模型的輸出 — 不需要任何帳號或權限(CVSS 評為 PR:N),但必須有辦法透過提示注入左右模型會說什麼、會提出哪些指令。 1攻擊者設法用提示注入影響模型的輸出使用者以實驗性代理模式執行,模型提出 Bash 指令 — 代理模式需要自行用 ollama run --experimental 開啟。模型提出的指令開頭是一個已核准的指令,後面再接上分號或邏輯運算子與額外指令。 2使用者以實驗性代理模式執行,模型提出 Bash 指令核准機制只比對指令開頭,沒有解析 shell 語法 — Bash 工具有一份「永遠允許」的指令開頭清單。因為沒有正確解析 shell 語法,整串指令被當成已核准的那一個,不再詢問使用者。 3核准機制只比對指令開頭,沒有解析 shell 語法未經核准的額外指令在本機執行 — CVSS 對機密性、完整性、可用性的影響都評為高;CISA 的 SSVC 評估把技術影響評為「total」。 4未經核准的額外指令在本機執行攻擊路徑可在此擋下PlainCVE · plaincve.date/vulns/cve-2026-102697-ollama-agent-bash-approval-bypass · CC BY 4.0
Ollama 實驗性代理模式 Bash 核准繞過:只比對指令開頭,後面串接的指令也一起被放行: 1. 攻擊者設法用提示注入影響模型的輸出 → 2. 使用者以實驗性代理模式執行,模型提出 Bash 指令 → 3. 核准機制只比對指令開頭,沒有解析 shell 語法 → 4. 未經核准的額外指令在本機執行CVE-2026-102697 · Ollama 實驗性代理模式Bash 核准繞過:只比對指令開頭,後面串接的指令也一起被放行攻擊者設法用提示注入影響模型的輸出 — 不需要任何帳號或權限(CVSS 評為 PR:N),但必須有辦法透過提示注入左右模型會說什麼、會提出哪些指令。 1攻擊者攻擊者設法用提示注入影響模型的輸出使用者以實驗性代理模式執行,模型提出 Bash 指令 — 代理模式需要自行用 ollama run --experimental 開啟。模型提出的指令開頭是一個已核准的指令,後面再接上分號或邏輯運算子與額外指令。 2你的系統使用者以實驗性代理模式執行,模型提出Bash 指令核准機制只比對指令開頭,沒有解析 shell 語法 — Bash 工具有一份「永遠允許」的指令開頭清單。因為沒有正確解析 shell 語法,整串指令被當成已核准的那一個,不再詢問使用者。 3你的系統核准機制只比對指令開頭,沒有解析shell 語法未經核准的額外指令在本機執行 — CVSS 對機密性、完整性、可用性的影響都評為高;CISA 的 SSVC 評估把技術影響評為「total」。 4你的系統未經核准的額外指令在本機執行攻擊路徑可在此擋下PlainCVE · CC BY 4.0plaincve.date/vulns/cve-2026-102697-ollama-agent-bash-approval-bypass
圖片可自由用於報導與教學,採 CC BY 4.0,圖上已附出處。
  1. 攻擊者

    攻擊者設法用提示注入影響模型的輸出

    不需要任何帳號或權限(CVSS 評為 PR:N),但必須有辦法透過提示注入左右模型會說什麼、會提出哪些指令。

    防禦: PlainCVE 的建議:不要讓開了 Bash 工具的代理處理來源不明的內容。

  2. 你的系統

    使用者以實驗性代理模式執行,模型提出 Bash 指令

    代理模式需要自行用 ollama run --experimental 開啟。模型提出的指令開頭是一個已核准的指令,後面再接上分號或邏輯運算子與額外指令。

    防禦: PlainCVE 的判斷:不使用 --experimental 代理模式,就不會走到這段程式。

  3. 你的系統

    核准機制只比對指令開頭,沒有解析 shell 語法

    Bash 工具有一份「永遠允許」的指令開頭清單。因為沒有正確解析 shell 語法,整串指令被當成已核准的那一個,不再詢問使用者。

    防禦: 升級到 0.31.2(CNA 的 CVE 紀錄以此為受影響範圍上界,CNA 所列修補 commit 已包含在內;截至 2026-10-07,Ollama 的 GitHub 安全公告頁沒有已發布的公告)。

  4. 你的系統

    未經核准的額外指令在本機執行

    CVSS 對機密性、完整性、可用性的影響都評為高;CISA 的 SSVC 評估把技術影響評為「total」。

影響範圍

條件是否受影響
Ollama 0.14.0 到 0.31.2 以前 + 用 --experimental 開啟代理模式並使用 Bash 工具受影響
Ollama 0.31.2 以上CNA 的 CVE 紀錄不列為受影響;CNA 所列修補 commit 已包含在 v0.31.2;截至 2026-10-07,Ollama 的 GitHub 安全公告頁沒有已發布的公告
0.14.0 正式版以前不在 CNA 的受影響範圍(semver 0.14.0 起)。但 Phoronix 報導代理模式在 0.14.0-rc2(2026-01-10)就已加入,rc 版本是否受影響無法確認
只用 Ollama 和模型聊天、沒有開啟代理模式PlainCVE 的判斷:不會走到有問題的程式

另外還要攻擊者能透過提示注入(把指示藏在模型會讀到的內容裡)影響模型輸出。CNA 的 CVSS 把攻擊途徑評為「本機」(Local),需要使用者互動(CVSS 3.1 為 UI:R,CVSS 4.0 為 UI:P 被動互動),不需要任何權限。

原理

Ollama 從 0.14(2026 年 1 月的 0.14-rc2)開始提供實驗性的代理模式:模型可以透過 Bash 工具在你的電腦上執行指令,但執行前要先經過你核准。為了不要每次都問,程式裡有一份「永遠允許」的指令開頭清單(v0.31.1 的 x/agent/approval.go),核准也是依照指令開頭來判斷。

問題在於這個核准機制沒有正確解析 shell 語法。如果模型提出的指令開頭是一個已核准的指令,後面再用分號或邏輯運算子(shell 控制運算子,用來把多個指令接在一起)接上別的指令,整串會被當成已核准的那一個,額外的指令就不經詢問直接執行。這屬於 CWE-863(授權不當)。

攻擊者需要能透過提示注入左右模型會提出什麼指令;CVSS 把攻擊途徑評為本機(Local),並需要使用者互動。

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

展開程式碼範例(go)
// 只要指令開頭符合允許清單,就整串放行
for _, p := range autoAllowPrefixes {
    if strings.HasPrefix(cmd, p) {
        return Allowed
    }
}

較安全的思路(一般性示意;來源沒有顯示實際修補內容):

展開程式碼範例(go)
// 先依 shell 語法拆解;只要含有控制運算子或多個指令,
// 就不自動放行,改為逐一詢問使用者
if containsShellControlOperators(cmd) {
    return AskUser
}

時間軸

日期事件
2026-01Ollama 0.14-rc2 加入實驗性代理與 Bash 工具,含依開頭比對的允許清單
2026-07-02CVE 紀錄記載的公開日期
2026-07-06 或 07-070.31.2 發布;發布頁顯示 7 月 6 日,同一 commit 的 rc2 標籤卻是 7 月 7 日,來源不一致
2026-09-29CVE 保留並公開(CNA:VulnCheck);CISA SSVC 記錄沒有已知利用
2026-10-01尚未列入 CISA KEV

延伸閱讀

  • 評分差異:CNA 給了兩個分數,CVSS 4.0 為 8.5、CVSS 3.1 為 7.8,只是版本不同。NVD 截至資料擷取時仍在「等待分析」。
  • CISA 的 SSVC 評估:利用狀況「none」、不可自動化、技術影響「total」。GitHub 顯示 EPSS 機率為 0.00146(百分位 0.03278)。
  • 沒有證據顯示是否曾在修補前被利用。CVE 紀錄的公開日期(7 月 2 日)早於 0.31.2 發布(7 月 6–7 日),PlainCVE 推測可能在修補版本推出前就已公開,但無法確認。
  • GitHub Advisory Database 編號 GHSA-44m8-pr79-3734,GitHub 尚未審查。OSV 列出引入問題的 commit 為 02a24015968d612b418448b73cffaa1b0652d161。
  • 我們查閱的來源中沒有 Ollama 針對此 CVE 的安全公告,也沒有任何來源提供偵測指引。
  • 發現者:Akıner Kısa(依 VulnCheck 公告)。
  • 相關弱點類型:CWE-863。

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

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

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

來源

  1. CVE / NVD / OSVCVE-2026-102697 CVE record (CVE Services API) · CVE Program / VulnCheck (CNA), 2026-09-29 · 查閱 2026-10-01
  2. 安全公告Ollama 0.14.0 before 0.31.2 Experimental Agent Bash Approval Bypass via Prefix-Based Authorization · VulnCheck · 查閱 2026-10-01
  3. CVE / NVD / OSVNVD API - CVE-2026-102697 · NIST · 查閱 2026-10-01
  4. 安全公告GitHub Advisory Database - GHSA-44m8-pr79-3734 (unreviewed) · GitHub · 查閱 2026-10-01
  5. 其他OSV - CVE-2026-102697 · OSV · 查閱 2026-10-01
  6. 修補 commit / 版本agent: harness core (#16963), commit a2b3a5e · Ollama (GitHub) · 查閱 2026-10-01
  7. 修補 commit / 版本GitHub compare: v0.31.2...a2b3a5e(a2b3a5e 已包含在 v0.31.2) · Ollama (GitHub) · 查閱 2026-10-06
  8. 修補 commit / 版本GitHub compare: v0.31.1...a2b3a5e(a2b3a5e 不在 v0.31.1) · Ollama (GitHub) · 查閱 2026-10-06
  9. 廠商說明cmd/cmd.go at v0.31.1(--experimental 旗標預設關閉) · Ollama (GitHub) · 查閱 2026-10-06
  10. 廠商說明x/agent/approval.go at v0.31.1 · Ollama (GitHub) · 查閱 2026-10-01
  11. 廠商說明Ollama v0.31.2 release · Ollama (GitHub) · 查閱 2026-10-01
  12. 廠商說明Ollama v0.31.2-rc2 release · Ollama (GitHub) · 查閱 2026-10-01
  13. 廠商說明Ollama GitHub 安全公告頁(截至 2026-10-07 沒有已發布的公告) · Ollama (GitHub) · 查閱 2026-10-07
  14. 新聞報導Ollama 0.14-rc2 adds experimental agent loop with Bash support · Phoronix · 查閱 2026-10-01
  15. 研究文章CVE-2026-102697 - Ollama 0.14.0 before 0.31.2 experimental agent Bash · HOL Guard · 查閱 2026-10-01

媒體簡報

一句話

Ollama 是在個人電腦上執行大型語言模型的熱門工具。它的實驗性「代理模式」可以讓模型在電腦上執行 Bash 指令,並要求使用者核准,但核准機制只看指令開頭。只要攻擊者能透過提示注入影響模型,就能在已核准的指令後面串接其他指令並執行。這個漏洞編號 CVE-2026-102697,影響 0.14.0 到 0.31.2 以前的版本,目前沒有已知的實際利用。

關鍵數字

嚴重度
CVSS 4.0 8.5;CVSS 3.1 7.8(兩者皆為 CVE 紀錄中 CNA VulnCheck 的評分) cveawg.mitre.org
受影響版本
0.14.0 起、0.31.2 以前 cveawg.mitre.org
CVE 公開
2026-09-29(CNA:VulnCheck) cveawg.mitre.org
發現者
Akıner Kısa vulncheck.com
NVD 狀態
尚待分析 services.nvd.nist.gov

已確認

  • CVE 紀錄與 VulnCheck 都指出 0.14.0 到 0.31.2 以前的版本受影響。
  • 代理模式的 Bash 核准機制沒有正確解析 shell 語法,可在已核准指令後串接額外指令。
  • 截至 2026-10-01 未列入 CISA KEV;CISA 的 SSVC 在 2026-09-29 記錄為沒有已知利用。

尚未確認 / 說法不一

  • 0.31.2 是否真的修好:CNA 所列修補 commit a2b3a5e 已包含在 v0.31.2,但這個 commit 沒有被描述為安全修補,原始資料看不出它是否真的改正了核准邏輯;截至 2026-10-07,Ollama 的 GitHub 安全公告頁也沒有已發布的公告。
  • 0.14.0 的預發布版(例如 0.14.0-rc2)是否受影響:Phoronix 報導代理模式在 0.14-rc2 就已加入,但 CNA 的範圍(semver 0.14.0 起)不含 rc 版本,我們也沒有讀到 rc 版本的程式碼。
  • 0.31.2 的發布日期:發布頁顯示 7 月 6 日,同一個 commit 的 rc2 標籤卻是 7 月 7 日,來源不一致。
  • 漏洞是否在修補版本推出前就已公開,以及是否曾被當成零時差漏洞利用,都無法確認。
  • 我們查閱的來源中找不到 Ollama 針對此 CVE 的安全公告。

可引用的一句話

只看指令開頭就蓋章放行,等於只看信封上的寄件人,卻不拆開看裡面裝了什麼。

圖片

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

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

如何引用本頁

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

PlainCVE 團隊(2026)。《Ollama 實驗性代理模式 Bash 核准繞過:只比對指令開頭,後面串接的指令也一起被放行》。PlainCVE。https://plaincve.date/vulns/cve-2026-102697-ollama-agent-bash-approval-bypass(查閱日期:YYYY-MM-DD)
BibTeX
@misc{cve2026102697ollamaagentbashapprovalbypass2026,
  title  = {Ollama 實驗性代理模式 Bash 核准繞過:只比對指令開頭,後面串接的指令也一起被放行},
  author = {PlainCVE 團隊},
  year   = {2026},
  howpublished = {PlainCVE},
  url    = {https://plaincve.date/vulns/cve-2026-102697-ollama-agent-bash-approval-bypass},
  note   = {更新於 2026-10-07}
}