// 威脅簡報
Continue CLI Bash 權限規則繞過:在已允許的指令後面串接,就能執行沒被核准的指令
- CVSS
- 7.7 HIGH
- CISA KEV
- 未列入
- 弱點類型
- CWE-863
AI 審稿 2026-10-19(未經人工)指令測試:未提供漏洞重現:未進行驗證紀錄 ↓
Continue CLI 1.5.47 以前(含)的版本把 Bash 允許規則套用在整串指令上,被植入指示的 AI 代理可在已核准指令後串接其他指令並直接執行。
| 誰會中 | 使用 npm 套件 @continuedev/cli 1.5.47 以前(含)的開發者,而且權限設定中存在 Bash 前綴允許規則(例如在核准畫面選擇「Continue + don't ask again」時留下的,或自己設定的;單次按「Continue」不會留下規則)。 |
|---|---|
| 後果 | 如果代理讀到被植入指示的程式庫檔案或網頁,沒被核准的指令可能在不跳出確認的情況下,以執行代理的使用者權限執行。 |
| 現在該做什麼 | 目前沒有修補版本:npm 上的最新版 1.5.47 本身就在受影響範圍內。PlainCVE 建議移除寬鬆的 Bash 前綴允許規則,並避免在不受信任的環境或以高權限執行代理。 |
| 受影響版本 | 1.5.47 以前(含)的所有版本 |
| 修好的版本 | 沒有修補版本:npm 上的最新版 1.5.47 本身就在受影響範圍內(README 提到的 2.0.0 在 npm 上查不到) |
| CVSS 向量 | 顯示完整向量CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N |
| 時間點 |
|
藍隊應對手冊
確認、修補 / 緩解、應變、強化。版本符合受影響條件不等於已被入侵;檢查沒有結果也不等於安全,每一項都有能證明與不能證明的範圍。標記的步驟對應下方攻擊流程裡可以擋下攻擊的那一步。
- 01確認是否安裝受影響版本
在安裝 Continue CLI 的電腦上用終端機執行;如果是裝在專案內,到專案資料夾執行並拿掉 -g。@continuedev/cli 1.5.47 以前(含)都在 CVE 的受影響範圍內,而 1.5.47 就是 npm 上的最新版。
唯讀查詢npm ls -g @continuedev/cli - 02檢查有沒有 Bash 前綴允許規則
必須存在 Bash(名稱*) 這類允許規則,繞過才成立。檢查你權限設定中所有 Bash(名稱*) 這類允許規則,不論是在核准畫面選擇「Continue + don't ask again」時留下的,還是自己設定的。
- 01移除寬鬆的 Bash 前綴允許規則
PlainCVE 的判斷:讓每個 shell 指令都要求核准,可能可以降低曝險。沒有來源直接這樣建議,也沒有來源顯示有官方修補。
- 02不要在不受信任的環境或以高權限執行代理
第三方網站(OffSeq)的建議,不是官方指引。
- 01懷疑被利用時,檢查代理執行過的指令
PlainCVE 的建議:留意以已核准指令開頭、後面卻串接其他指令的紀錄,並檢查代理當時讀取的程式庫或網頁。來源沒有提供官方偵測指引。
完整修復步驟與說明
目前沒有修補版本。 npm registry 上 @continuedev/cli 的最新版是 1.5.47,本身就在受影響範圍內;沒有來源指出已合併的修補。研究者的 GitHub issue #13288(該頁含攻擊程式,本站不連結)仍未關閉,也沒有連結的分支或 PR。第三方追蹤網站 HOL Guard 與 OffSeq 也都表示修補狀態未回報或未確認。官方另表示 continuedev/continue 程式庫已不再積極維護、改為唯讀,因此不要預期會有後續修補。
- 確認版本。 在安裝 Continue CLI 的電腦上用終端機執行
npm ls -g @continuedev/cli(若是裝在專案內,到專案資料夾執行並拿掉-g)。 - 關於 PR #12248。 有外部貢獻者提交過讓權限檢查改取「靜態與動態政策中較嚴格者」的 PR,但作者因不簽 CLA 自行關閉,沒有合併。PlainCVE 的判斷:該 PR 的說明沒有提到「比對前拆開串接指令」,即使合併也未必能完整修好這個 CVE。
- 沒有可以升級的修補版本。 官方 README 提到 CLI 的最終版 2.0.0,但 npm registry 上查不到這個版本;npm 上的最新版 1.5.47 仍在受影響範圍內。請套用下面的做法。
- PlainCVE 的建議。 移除寬鬆的
Bash(前綴*)允許規則,讓 shell 指令每次都要求核准,可能可以降低曝險(沒有來源直接這樣說)。第三方網站 OffSeq 也建議在修補出現前,不要在不受信任的環境或以高權限執行代理;這不是官方指引。
攻擊流程
從左到右是攻擊發生的順序。藍色盾牌代表這一步可以被擋下,越早擋下越好。點圖示可看細節。
由上到下是攻擊發生的順序。藍色盾牌代表這一步可以被擋下,越早擋下越好。點圖示可看細節。
- 攻擊者
在程式庫檔案或網頁裡藏入給 AI 的指示
這稱為提示注入(prompt injection):把指令藏在代理會讀取的內容裡。攻擊者不需要任何權限。
防禦: 第三方建議:在修補出現前,不要在不受信任的環境執行代理。
- 你的系統
權限設定中存在 Bash 前綴允許規則
這類規則可能是使用者自己設定的,也可能是在核准畫面選擇「Continue + don't ask again」時留下的:選擇「Continue + don't ask again」後,CLI 只取第一個指令名稱加上萬用字元,存成像 Bash(名稱*) 這樣的允許規則。單次按「Continue」不會留下規則。
防禦: PlainCVE 的判斷:移除寬鬆的 Bash 前綴允許規則,讓每個 shell 指令都要求核准。
- 你的系統
代理讀到被植入的指示,在允許的指令後面串接其他指令
串接方式是用 ;、&& 或 | 等符號接在已允許的前綴後面。
- 你的系統
權限檢查把整串指令當成符合規則而放行
研究者指出規則會變成正規表示式,比對整串指令而非只看第一個指令。另外,官方程式碼中靜態允許規則會蓋過動態安全評估(除非評估結果是「停用」)。
防禦: 研究者提議:比對前先把複合指令拆開,逐段檢查。這是提議,尚未出貨。
- 攻擊者
沒被核准的指令以使用者權限默默執行
研究者表示不會跳出確認提示。
防禦: 第三方建議:不要以高權限執行代理,限制可被造成的損害。
影響範圍
Continue CLI(npm 套件 @continuedev/cli)是一個 AI 程式助理(代理,agent),可以替你在終端機執行 shell 指令。執行前它會依照權限規則決定要不要先問你。
| 條件 | 是否受影響 |
|---|---|
@continuedev/cli 1.5.47 以前(含),且存在 Bash 前綴允許規則(例如選擇「Continue + don’t ask again」時留下的,或自己設定的) | 受影響 |
| 1.5.47 以前(含),但沒有任何 Bash 前綴允許規則 | 繞過需要一條已允許的前綴規則才成立 |
| 2.0.0 | 官方 README 提到最終版 2.0.0,但 npm registry 上查不到這個版本,不能當成可以升級的選項 |
沒有修補版本。 npm registry 上 @continuedev/cli 的最新版是 1.5.47,它的 gitHead 正是 CVE 紀錄標為有問題程式碼的 commit(d3f60ba),本身就在受影響範圍內。
攻擊還需要另一個條件:攻擊者必須把指示放進代理會讀取的內容,例如程式庫裡的檔案或代理抓取的網頁(這稱為「提示注入」)。依 CVSS,攻擊者不需要任何權限。
原理
CVE 紀錄只要求存在「已允許的 Bash 前綴規則」,沒有限定規則從哪裡來;官方的權限檢查程式也以同樣方式比對所有規則。使用者自己設定的 Bash(名稱*) 規則同樣適用。核准 Bash 指令時,畫面有「Continue」「Continue + don’t ask again」「No, and tell Continue what to do differently」三個選項;只有選「Continue + don’t ask again」才會存規則,單次按「Continue」不會。選了「Continue + don’t ask again」時,官方程式碼只取第一個指令名稱,後面加上萬用字元,存成 Bash(名稱*) 這樣的規則。回報的研究者指出,這條規則會變成一個正規表示式,拿去比對整串指令,而不是只看第一個指令。所以只要開頭是被允許的名稱,後面用 ;、&& 或 | 串接什麼都會符合。
另外,官方的權限檢查程式中,只要靜態允許規則成立,就會蓋過動態安全評估的結果(除非評估結果是「停用」)。研究者表示,這類串接指令會默默執行,不會跳出確認提示,並以執行代理的使用者權限執行。這類錯誤屬於 CWE-863(授權檢查錯誤)。
有問題的思路(概念示意,不是原始程式碼):
展開程式碼範例(text)
規則 = "允許:以 <名稱> 開頭的任何字串"
if 整串指令 符合 規則:
直接執行 # 串接在後面的指令也一起被放行研究者提議的思路(提議,尚未出貨):
展開程式碼範例(text)
片段們 = 依 ; && || 把指令拆開
if 每一個片段 都各自符合允許規則:
執行
else:
詢問使用者時間軸
| 日期 | 事件 |
|---|---|
| 2026-04-28 | 外部貢獻者的 PR #12248 公開描述 permissionChecker.ts 中靜態允許規則會蓋過動態政策評估(未提到指令串接);該 PR 後來未合併 |
| 2026-09-17 | 研究者在 GitHub 公開 issue #13288(該頁含攻擊程式,本站不連結);也是 CVE 紀錄標示的公開日期 |
| 2026-10-12 | VulnCheck 發布 CVE 紀錄 |
| 2026-10-13 | 截至此日未列入 CISA KEV;NVD 已收到但尚未分析 |
| 2026-10-16 | NVD 紀錄最後修改;目前狀態為 Deferred(暫緩分析)。NVD 資料沒有記錄狀態是哪一天改的 |
延伸閱讀
- 評分: CNA(VulnCheck)提供 CVSS 4.0 7.7 與 CVSS 3.1 7.5,兩者都屬「高」。分數不同只是 CVSS 版本不同,來源並沒有矛盾。CVSS 3.1 把攻擊複雜度列為高、需要使用者互動;CVSS 4.0 則列為被動互動、且需要特定前提條件。
- 利用狀況: 未列入 CISA KEV。沒有證據顯示已遭實際利用,也沒有證據顯示是否曾在修補前被利用;HOL Guard 表示其來源未標示為已知遭利用,但這不代表從未被利用。研究者的 GitHub issue #13288 附有重現內容(該頁含攻擊程式,本站不連結)。
- CVE 來源: 這個 CVE 由 VulnCheck 指派,不是 Continue 專案本身;GitHub 顧問資料庫編號為 GHSA-f54m-g39v-qf2p,尚未經過審查。CVE 紀錄致謝 Akıner Kısa 與 Tardfyou。
- 不要混淆: CVE-2026-76072 是另一個同樣影響 1.5.47 以前(含)版本的 VulnCheck CVE,問題是 headless 與 auto 模式下封鎖的破壞性指令清單不完整,與本頁不同(VulnCheck 對該 CVE 的公告,該頁含攻擊程式,本站不連結)。
- 相關弱點類型:CWE-863。
驗證紀錄 AI 依審稿規則逐項核對來源,全部通過;未經人工審稿,也尚未在我們的環境重現
| AI 審稿 | 2026-10-19 · 審稿規則 |
|---|
驗證紀錄只寫環境與結果,不公開重現步驟或可攻擊他人系統的程式。詳見 政策.
來源
- CVE / NVD / OSVCVE-2026-109560 CVE record (JSON) · CVE Program (CNA: VulnCheck), 2026-10-12 · 查閱 2026-10-13
- CVE / NVD / OSVNVD API - CVE-2026-109560 · NIST · 查閱 2026-10-18
- 安全公告GitHub Advisory Database - GHSA-f54m-g39v-qf2p (unreviewed) · GitHub · 查閱 2026-10-13
- 其他npm registry - @continuedev/cli latest · npm · 查閱 2026-10-17
- 廠商說明continuedev/continue repository README · Continue · 查閱 2026-10-13
- 廠商說明permissionChecker.ts at d3f60ba · Continue (GitHub) · 查閱 2026-10-13
- 廠商說明policyWriter.ts at d3f60ba · Continue (GitHub) · 查閱 2026-10-13
- 廠商說明ToolPermissionSelector.tsx at d3f60ba · Continue (GitHub) · 查閱 2026-10-18
- 其他Pull request #12248 (closed, not merged) · continuedev/continue (GitHub) · 查閱 2026-10-13
- 其他CVE-2026-109560 - HOL Guard · HOL Guard · 查閱 2026-10-13
- 其他CVE-2026-109560: Incorrect Authorization in continuedev continue · OffSeq Radar · 查閱 2026-10-13
媒體簡報
一句話
Continue CLI 是一個能替開發者執行 shell 指令的 AI 程式助理。1.5.47 以前(含)的版本中,使用者在核准畫面選擇「Continue + don't ask again」的指令會變成一條寬鬆的允許規則(使用者自己設定的 Bash 前綴允許規則也一樣),攻擊者若在程式庫檔案或網頁中藏入指示,代理可能在已核准的指令後面串接其他指令並直接執行。目前沒有修補版本:npm 上的最新版 1.5.47 本身就在受影響範圍內,而官方已表示該程式庫不再積極維護。
關鍵數字
- 嚴重度
- CVSS 4.0 7.7;CVSS 3.1 7.5(皆由 CNA VulnCheck 提供) cveawg.mitre.org
- 受影響版本
- @continuedev/cli 1.5.47 以前(含) cveawg.mitre.org
- 問題回報公開
- 2026-09-17(CVE 紀錄的公開日期;研究者的 GitHub issue #13288 同日開立,該 issue 含攻擊程式,本站不連結) cveawg.mitre.org
- CVE 公開
- 2026-10-12 cveawg.mitre.org
- 維護狀態
- 官方表示程式庫已不再積極維護、唯讀 github.com
已確認
- 1.5.47 以前(含)的 Continue CLI 可在已允許的 Bash 前綴後串接指令,執行使用者沒核准的指令。
- 官方程式碼中,選擇「Continue + don't ask again」時只存第一個指令名稱加萬用字元(單次「Continue」不存規則),且靜態允許規則會蓋過動態安全評估(除非評估結果是「停用」)。
- 研究者的 GitHub issue #13288(該頁含攻擊程式,本站不連結)附有重現內容,且該 issue 仍未關閉、沒有連結的修補。
- 沒有修補版本:npm registry 上 @continuedev/cli 的最新版是 1.5.47,在受影響範圍內。
- NVD 目前狀態為 Deferred(暫緩分析;紀錄最後修改 2026-10-16)。
尚未確認 / 說法不一
- 官方 README 提到 CLI 的最終版 2.0.0,但 npm registry 上查不到這個版本,無法確認它是否存在或是否已修補。
- 沒有證據顯示已遭實際利用,也不知道是否曾在修補前被利用;它未列入 CISA KEV。
可引用的一句話
你要它別再問的是一個指令,系統記住的卻是「以這個字開頭的任何東西」。
圖片
引用時請標示「PlainCVE」並附上本頁連結。 完整引用格式見下方「如何引用本頁」。有事實錯誤請回報.
Continue CLI Bash 權限規則繞過:在已允許的指令後面串接,就能執行沒被核准的指令 Continue CLI 是一個能替開發者執行 shell 指令的 AI 程式助理。1.5.47 以前(含)的版本中,使用者在核准畫面選擇「Continue + don't ask again」的指令會變成一條寬鬆的允許規則(使用者自己設定的 Bash 前綴允許規則也一樣),攻擊者若在程式庫檔案或網頁中藏入指示,代理可能在已核准的指令後面串接其他指令並直接執行。目前沒有修補版本:npm 上的最新版 1.5.47 本身就在受影響範圍內,而官方已表示該程式庫不再積極維護。 關鍵數字: - 嚴重度:CVSS 4.0 7.7;CVSS 3.1 7.5(皆由 CNA VulnCheck 提供)(https://cveawg.mitre.org/api/cve/CVE-2026-109560) - 受影響版本:@continuedev/cli 1.5.47 以前(含)(https://cveawg.mitre.org/api/cve/CVE-2026-109560) - 問題回報公開:2026-09-17(CVE 紀錄的公開日期;研究者的 GitHub issue #13288 同日開立,該 issue 含攻擊程式,本站不連結)(https://cveawg.mitre.org/api/cve/CVE-2026-109560) - CVE 公開:2026-10-12(https://cveawg.mitre.org/api/cve/CVE-2026-109560) - 維護狀態:官方表示程式庫已不再積極維護、唯讀(https://github.com/continuedev/continue) 已確認: - 1.5.47 以前(含)的 Continue CLI 可在已允許的 Bash 前綴後串接指令,執行使用者沒核准的指令。 - 官方程式碼中,選擇「Continue + don't ask again」時只存第一個指令名稱加萬用字元(單次「Continue」不存規則),且靜態允許規則會蓋過動態安全評估(除非評估結果是「停用」)。 - 研究者的 GitHub issue #13288(該頁含攻擊程式,本站不連結)附有重現內容,且該 issue 仍未關閉、沒有連結的修補。 - 沒有修補版本:npm registry 上 @continuedev/cli 的最新版是 1.5.47,在受影響範圍內。 - NVD 目前狀態為 Deferred(暫緩分析;紀錄最後修改 2026-10-16)。 尚未確認 / 說法不一: - 官方 README 提到 CLI 的最終版 2.0.0,但 npm registry 上查不到這個版本,無法確認它是否存在或是否已修補。 - 沒有證據顯示已遭實際利用,也不知道是否曾在修補前被利用;它未列入 CISA KEV。 「你要它別再問的是一個指令,系統記住的卻是「以這個字開頭的任何東西」。」— PlainCVE https://plaincve.date/vulns/cve-2026-109560-continue-cli-bash-permission-bypass
如何引用本頁
本文採 CC BY 4.0,轉載請保留署名與連結。
PlainCVE 團隊(2026)。《Continue CLI Bash 權限規則繞過:在已允許的指令後面串接,就能執行沒被核准的指令》。PlainCVE。https://plaincve.date/vulns/cve-2026-109560-continue-cli-bash-permission-bypass(查閱日期:YYYY-MM-DD)BibTeX
@misc{cve2026109560continueclibashpermissionbypass2026,
title = {Continue CLI Bash 權限規則繞過:在已允許的指令後面串接,就能執行沒被核准的指令},
author = {PlainCVE 團隊},
year = {2026},
howpublished = {PlainCVE},
url = {https://plaincve.date/vulns/cve-2026-109560-continue-cli-bash-permission-bypass},
note = {更新於 2026-10-19}
}