// 威脅簡報
Ollama 實驗性代理模式 Bash 核准繞過:只比對指令開頭,後面串接的指令也一起被放行
- CVSS
- 8.5 HIGH
- CISA KEV
- 未列入
- 弱點類型
- CWE-863
- 主題
- 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 |
| 時間點 |
|
藍隊應對手冊
確認、修補 / 緩解、應變、強化。版本符合受影響條件不等於已被入侵;檢查沒有結果也不等於安全,每一項都有能證明與不能證明的範圍。標記的步驟對應下方攻擊流程裡可以擋下攻擊的那一步。
- 01確認版本與是否用了實驗性代理模式
版本在 0.14.0 到 0.31.2 以前,而且曾用 --experimental 開啟代理模式、讓模型使用 Bash 工具,兩者同時成立才在受影響範圍內。
唯讀查詢ollama --version - 02目前沒有公開的偵測方法
提供的來源都沒有偵測指引,也沒有包含 Ollama 針對此 CVE 的安全公告。CISA 的 SSVC 在 2026-09-29 記錄為沒有已知利用。
- 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 - 02在確認修補前,不使用 --experimental 代理模式
代理模式需要自行開啟(v0.31.1 原始碼中,ollama run 的 --experimental 旗標預設為關閉)。不開啟就不會走到有問題的核准程式。這是 PlainCVE 的判斷,不是官方建議。
- 01懷疑被利用時,把電腦當成可能已遭入侵處理
來源沒有提供事件回應指引。由於 SSVC 把技術影響評為「total」,PlainCVE 建議:檢查代理曾執行過哪些指令,並輪替這台電腦上可取得的密碼與金鑰。這是預防性建議,不代表已確認有外洩。
完整修復步驟與說明
- 確認版本。 執行
ollama --version,版本在 0.14.0 到 0.31.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都列為修補。 - 在確認之前。 官方沒有提供暫時緩解方法。PlainCVE 的判斷是:代理模式需要自行開啟,不使用
--experimental就不會走到這段程式。
攻擊流程
從左到右是攻擊發生的順序。藍色盾牌代表這一步可以被擋下,越早擋下越好。點圖示可看細節。
由上到下是攻擊發生的順序。藍色盾牌代表這一步可以被擋下,越早擋下越好。點圖示可看細節。
- 攻擊者
攻擊者設法用提示注入影響模型的輸出
不需要任何帳號或權限(CVSS 評為 PR:N),但必須有辦法透過提示注入左右模型會說什麼、會提出哪些指令。
防禦: PlainCVE 的建議:不要讓開了 Bash 工具的代理處理來源不明的內容。
- 你的系統
使用者以實驗性代理模式執行,模型提出 Bash 指令
代理模式需要自行用 ollama run --experimental 開啟。模型提出的指令開頭是一個已核准的指令,後面再接上分號或邏輯運算子與額外指令。
防禦: PlainCVE 的判斷:不使用 --experimental 代理模式,就不會走到這段程式。
- 你的系統
核准機制只比對指令開頭,沒有解析 shell 語法
Bash 工具有一份「永遠允許」的指令開頭清單。因為沒有正確解析 shell 語法,整串指令被當成已核准的那一個,不再詢問使用者。
防禦: 升級到 0.31.2(CNA 的 CVE 紀錄以此為受影響範圍上界,CNA 所列修補 commit 已包含在內;截至 2026-10-07,Ollama 的 GitHub 安全公告頁沒有已發布的公告)。
- 你的系統
未經核准的額外指令在本機執行
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-01 | Ollama 0.14-rc2 加入實驗性代理與 Bash 工具,含依開頭比對的允許清單 |
| 2026-07-02 | CVE 紀錄記載的公開日期 |
| 2026-07-06 或 07-07 | 0.31.2 發布;發布頁顯示 7 月 6 日,同一 commit 的 rc2 標籤卻是 7 月 7 日,來源不一致 |
| 2026-09-29 | CVE 保留並公開(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 · 審稿規則 |
|---|
驗證紀錄只寫環境與結果,不公開重現步驟或可攻擊他人系統的程式。詳見 政策.
來源
- CVE / NVD / OSVCVE-2026-102697 CVE record (CVE Services API) · CVE Program / VulnCheck (CNA), 2026-09-29 · 查閱 2026-10-01
- 安全公告Ollama 0.14.0 before 0.31.2 Experimental Agent Bash Approval Bypass via Prefix-Based Authorization · VulnCheck · 查閱 2026-10-01
- CVE / NVD / OSVNVD API - CVE-2026-102697 · NIST · 查閱 2026-10-01
- 安全公告GitHub Advisory Database - GHSA-44m8-pr79-3734 (unreviewed) · GitHub · 查閱 2026-10-01
- 其他OSV - CVE-2026-102697 · OSV · 查閱 2026-10-01
- 修補 commit / 版本agent: harness core (#16963), commit a2b3a5e · Ollama (GitHub) · 查閱 2026-10-01
- 修補 commit / 版本GitHub compare: v0.31.2...a2b3a5e(a2b3a5e 已包含在 v0.31.2) · Ollama (GitHub) · 查閱 2026-10-06
- 修補 commit / 版本GitHub compare: v0.31.1...a2b3a5e(a2b3a5e 不在 v0.31.1) · Ollama (GitHub) · 查閱 2026-10-06
- 廠商說明cmd/cmd.go at v0.31.1(--experimental 旗標預設關閉) · Ollama (GitHub) · 查閱 2026-10-06
- 廠商說明x/agent/approval.go at v0.31.1 · Ollama (GitHub) · 查閱 2026-10-01
- 廠商說明Ollama v0.31.2 release · Ollama (GitHub) · 查閱 2026-10-01
- 廠商說明Ollama v0.31.2-rc2 release · Ollama (GitHub) · 查閱 2026-10-01
- 廠商說明Ollama GitHub 安全公告頁(截至 2026-10-07 沒有已發布的公告) · Ollama (GitHub) · 查閱 2026-10-07
- 新聞報導Ollama 0.14-rc2 adds experimental agent loop with Bash support · Phoronix · 查閱 2026-10-01
- 研究文章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 的安全公告。
可引用的一句話
只看指令開頭就蓋章放行,等於只看信封上的寄件人,卻不拆開看裡面裝了什麼。
圖片
引用時請標示「PlainCVE」並附上本頁連結。 完整引用格式見下方「如何引用本頁」。有事實錯誤請回報.
Ollama 實驗性代理模式 Bash 核准繞過:只比對指令開頭,後面串接的指令也一起被放行 Ollama 是在個人電腦上執行大型語言模型的熱門工具。它的實驗性「代理模式」可以讓模型在電腦上執行 Bash 指令,並要求使用者核准,但核准機制只看指令開頭。只要攻擊者能透過提示注入影響模型,就能在已核准的指令後面串接其他指令並執行。這個漏洞編號 CVE-2026-102697,影響 0.14.0 到 0.31.2 以前的版本,目前沒有已知的實際利用。 關鍵數字: - 嚴重度:CVSS 4.0 8.5;CVSS 3.1 7.8(兩者皆為 CVE 紀錄中 CNA VulnCheck 的評分)(https://cveawg.mitre.org/api/cve/CVE-2026-102697) - 受影響版本:0.14.0 起、0.31.2 以前(https://cveawg.mitre.org/api/cve/CVE-2026-102697) - CVE 公開:2026-09-29(CNA:VulnCheck)(https://cveawg.mitre.org/api/cve/CVE-2026-102697) - 發現者:Akıner Kısa(https://www.vulncheck.com/advisories/ollama-0.14.0-before-0.31.2-experimental-agent-bash-approval-bypass-via-prefix-based-authorization) - NVD 狀態:尚待分析(https://services.nvd.nist.gov/rest/json/cves/2.0?cveId=CVE-2026-102697) 已確認: - 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 的安全公告。 「只看指令開頭就蓋章放行,等於只看信封上的寄件人,卻不拆開看裡面裝了什麼。」— PlainCVE https://plaincve.date/vulns/cve-2026-102697-ollama-agent-bash-approval-bypass
如何引用本頁
本文採 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}
}