關閉選單
Gemini CLI AI程式碼助手漏洞允許隱形程式碼執行

報告:Gemini CLI AI 編碼助手漏洞允許隱蔽程式碼執行

Google於2025年6月25日發布的命令列介面(CLI)工具 Gemini CLI,旨在協助開發者直接透過終端機與Google的Gemini AI互動,以完成編碼相關任務。然而,安全公司Tracebit在該工具發布後不久便發現一個關鍵漏洞,允許攻擊者隱蔽地執行惡意指令並從開發者的電腦中竊取資料。此漏洞已於6月27日報告給Google,並在7月25日發布的0.1.14版本中得到修復。


漏洞詳情與攻擊手法

Tracebit研究人員發現,Gemini CLI在處理「上下文檔案」(context files)時存在缺陷,特別是README.md和GEMINI.md 這類文件,它們會被載入到AI的提示中以協助理解程式碼庫。攻擊者可以利用此機制,在這些看似無害的文件中隱藏惡意指令,進行提示注入(prompt injection)。

問題的關鍵在於Gemini CLI對於指令的解析能力以及其允許清單(allow-list)機制的處理方式。Tracebit演示了一種攻擊,攻擊者可以設定一個包含良性Python腳本和一個被「毒化」的README.md檔案的程式碼儲存庫。當開發者使用Gemini CLI 掃描這個儲存庫時,Gemini會被指示先執行一個良性指令(例如 grep ^Setup README.md),隨後卻被誘騙執行一個惡意的資料外洩指令。

令人擔憂的是,如果使用者已將grep等指令列入允許清單,Gemini CLI會將整個字串(包括惡意指令)視為安全,並自動執行,而不會再次提示使用者確認。例如,一個看似正常的grep指令後,加上分號(;),接著就是一個用於悄悄將使用者所有環境變數(可能包含敏感資訊)外洩到遠端伺服器的指令。更甚者,攻擊者可以利用空白字元來操縱Gemini的輸出,將惡意指令從使用者視野中隱藏,使其難以察覺。


潛在影響與風險

儘管此類攻擊需要一些前提條件,例如使用者已將特定指令列入允許清單,但對於執著的攻擊者而言,在許多情況下仍能達到預期效果。這個漏洞凸顯了AI助手的潛在危險,即使它們被指示執行看似無害的操作,也可能被欺騙執行隱蔽的資料外洩或其他惡意行為(例如安裝遠端外殼、刪除檔案等)。
此事件再次提醒我們,即使是看似無害的AI編碼工具,若存在安全缺陷,也可能成為駭客入侵系統、竊取敏感資訊的途徑。特別是對於開發者而言,其工作環境往往包含大量程式碼、憑證和其他敏感資料,一旦受到攻擊,後果不堪設想。


建議措施

為確保安全,Gemini CLI的使用者應立即採取以下措施:
  1. 升級至最新版本:強烈建議將Gemini CLI升級到0.1.14或更高版本,以修復此漏洞。
  2. 避免在不明或不受信任的程式碼庫上運行工具:在處理來自未知或不可信來源的程式碼時,應格外謹慎。
  3. 使用沙盒環境:考慮在沙盒或隔離環境中運行 Gemini CLI,以限制潛在惡意行為的影響範圍。
  4. 審慎管理允許清單:仔細審查並最小化允許清單中的指令,只允許絕對必要的指令自動執行。
Tracebit表示,他們也對OpenAI Codex和Anthropic Claude等其他AI編碼工具進行了測試,但由於這些工具具有更為robust的允許清單機制,因此並未發現類似的漏洞。這強調了AI工具開發者在設計安全機制時,需對潛在的提示注入和指令解析漏洞保持高度警惕,以保護廣大用戶的數位安全。
 
資料來源:https://www.bleepingcomputer.com/news/security/flaw-in-gemini-cli-ai-coding-assistant-allowed-stealthy-code-execution/