觀點 · 資訊分享
Gemini CLI 補上 CVSS 10 分漏洞:CI 裡不再自動信任資料夾,--yolo 也要遵守工具白名單
Google 的 AI 命令列工具 Gemini CLI 與 GitHub Action(run-gemini-cli)發布安全更新:在 CI 無頭模式下,過去會自動信任工作資料夾,且 --yolo 會忽略工具白名單,處理不受信任內容時可能導致遠端執行程式碼。0.39.1 起修正,但會影響既有流程。
- 發布
- 2026-04-25
- 篇幅
- 約 3 分鐘 · 1,566 字
- 結構
- 7 節 + 3 題常見問題
- 標籤

一句話看懂:Gemini CLI 在 CI 裡過去會自動信任資料夾、–yolo 還會忽略工具白名單,處理陌生內容時可能被誘導執行指令;0.39.1 起修正,但既有流程可能要調整。

先用白話講:為什麼 CI 裡的 AI 工具特別危險?
想像你請一位助理幫忙處理陌生人寄來的包裹。如果助理的規矩是「進到任何房間都自動信任裡面的說明書」,那陌生人只要在包裹裡塞一份假說明書,助理就可能照著做。
Gemini CLI 在 CI(自動化流程,例如幫忙審查別人送來的 PR)就有類似情況:它會讀工作資料夾裡的設定檔,而這些內容有可能是不受信任的人提供的。
發生什麼事
2026 年 4 月 24 日,GitHub 公布 Gemini CLI 與 run-gemini-cli GitHub Action 的安全公告(CVE-2026-12537),GitHub 給的 CVSS 3.1 分數是 10(滿分)。公告說明了兩個問題:
- 資料夾信任:舊版在無頭(headless)模式下,會自動信任工作資料夾並載入設定與環境變數。如果在不受信任的資料夾上執行(例如審查外部使用者送來的 PR),本機
.gemini/目錄裡的惡意環境變數,可能導致遠端執行程式碼 - 工具白名單:舊版在
--yolo模式下,會忽略settings.json裡細部的工具白名單(例如只允許run_shell_command(echo)也會被當成允許所有指令)。若處理不受信任內容,可能因提示注入而遠端執行程式碼
修正版本與影響
| 元件 | 受影響版本 | 修正版本 |
|---|---|---|
@google/gemini-cli |
低於 0.39.1 | 0.39.1 |
@google/gemini-cli 預覽版 |
0.40.0-preview.2 | 0.40.0-preview.3 |
run-gemini-cli Action |
低於 0.1.22 | 0.1.22 |
官方說明影響限於在無頭模式使用的流程,並指出「所有 Gemini CLI GitHub Actions 都受影響」。
給開發者的技術細節
- 這是破壞性變更:升級後,依賴舊的自動信任行為的 CI 流程會無法載入工作區設定;依賴舊白名單行為的流程,也可能默默失敗
- 若流程只處理可信任的輸入(例如信任的協作者的 PR),官方建議在流程中設定
GEMINI_TRUST_WORKSPACE: 'true' - 若流程處理不受信任的輸入,應依 run-gemini-cli 的官方指引加強防護,再設定該環境變數
- 預設情況下,Action 會取得最新版的 gemini-cli;如果你在流程裡手動指定了版本,要自己更新
我的看法
把 AI 工具接進 CI 很方便,例如自動分類 issue、初步審查 PR;但這類流程處理的常常是「外人」寫的內容。這次公告最值得記住的原則是:AI 工具讀到的東西,就等於它的指令來源,凡是不受信任的內容,都要假設有人會在裡面夾帶指令。
接案時如果替客戶設定了這類自動化,建議做三件事:確認 Action 與 CLI 版本、只給工具最小權限的白名單、對外部來源的內容保持隔離。
名詞小辭典
- Gemini CLI:Google 的 AI 命令列工具,可在終端機或 CI 中執行。
- 無頭模式(Headless):沒有人互動、由流程自動執行的模式。
- 提示注入(Prompt Injection):在文字中偷偷藏指令,誘騙 AI 照做。
- 白名單(Allowlist):只允許清單內的動作,其餘一律拒絕。