觀點 · 資訊分享

Claude Code 連出兩版補強隔離與權限:worktree 隔離補漏洞、沙箱可遮罩憑證檔、zsh 繞過修正

Claude Code 在 8 月 4 日連續釋出 2.1.221 與 2.1.222,修了好幾個權限與隔離相關的缺口,也新增沙箱的憑證檔「遮罩」模式:指令讀到的是假金鑰,真的金鑰只在對外送出時才由代理替換。

發布
2026-08-04
篇幅
約 5 分鐘 · 2,064 字
結構
8 節 + 3 題常見問題
標籤
#Claude Code#沙箱#權限#git worktree#AI 開發工具
Claude Code 連出兩版補強隔離與權限:worktree 隔離補漏洞、沙箱可遮罩憑證檔、zsh 繞過修正

一句話看懂:Claude Code 在 8 月 4 日連出 2.1.221 與 2.1.222 兩版,修了多個「權限檢查被繞過」與「隔離沒隔乾淨」的問題,也新增沙箱的憑證檔遮罩:AI 指令讀到的是替身,真金鑰只在對外送出時才被換上。

Claude Code 補強隔離與權限資訊圖卡:兩版連修隔離與權限檢查的缺口,沙箱還能把憑證檔換成假的

先用白話講:隔離和權限,在保護什麼?

讓 AI 代理幫你寫程式、跑指令,就像請一位很能幹的新同事進公司。你要做兩件事:

  • 給他一間獨立的工作間(隔離):他在自己的桌子上改東西,不會動到你的主桌面。Claude Code 用的是 git 的 worktree,讓每個代理在獨立的資料夾、獨立的分支上工作。
  • 規定他哪些事要先問你(權限):刪檔、跑危險指令,都要先經過檢查。

這兩道防線如果有縫,就等於工作間的牆有洞、權限的門有後門。這次兩版更新,補的就是這類縫隙。

發生什麼事

Claude Code 官方 GitHub 在 8 月 4 日釋出兩個版本。下面是本文挑出來、和隔離與權限相關的修正:

版本 修正內容
2.1.222 使用 worktree 隔離的 session 及其子代理,仍可能對主目錄執行破壞性 git 指令;現在隔離套用到所有 session 類型的檔案編輯與 Bash
2.1.222 背景代理任務(摘要、壓縮、重新命名)中,PreToolUse 的自動允許 hook 可能繞過工具限制
2.1.222 Remote Control 的自動啟動,不能再由專案內的設定檔(.claude/settings.json、.claude/settings.local.json)開啟,只能由它們關閉;要開,需在使用者層級用 /config
2.1.221 Bash 工具的權限檢查:zsh 在 [[ ]] 的正規表示式條件中,可能執行隱藏的指令;現在這類指令會詢問權限
2.1.221 PowerShell 權限檢查處理含引號的路徑有誤;現在這類路徑會要求核准

新功能:憑證檔「遮罩」

2.1.221 為沙箱新增了憑證檔的 mode: "mask"(Linux 與 WSL):

  • 沙箱內執行的指令,讀到的是替身內容(整個檔案,或只換掉用正規表示式 extract 擷取出來的片段)
  • 真正的值,由沙箱的代理(proxy)在對外送出請求時才換上去
  • 在 macOS 上,目前退回成 deny(直接拒絕)

白話一點:AI 代理跑的指令拿到的是一把「假鑰匙」,真鑰匙只在要出門的那一刻,由門口的警衛換上。這樣就算指令把檔案內容印出來或被誘導送到別處,洩漏的也只是假的。

其他值得知道的變更

  • 自動模式:用 SendMessage 傳給其他代理的訊息,現在會先過權限分類器再送出
  • /fork 現在會替分支建立自己的 worktree,不再共用原 session 的資料夾
  • 背景 session 會自動 commit 並 push 來保存成果,遵守你的 CLAUDE.md 裡的 git 指示,只在任務需要時才開草稿 PR
  • 2.1.222 移除了 ultraplan 功能

給開發者的技術細節

  • 用 claude --version 確認版本,建議更新到 2.1.222 以上
  • 如果你的設定檔倚賴「專案內的設定自動開啟 Remote Control」,更新後會失效,要改在使用者層級開
  • 憑證遮罩要用的話,請照發行說明的 mode: "mask" 與 extract 設定,我沒有在這篇驗證實際效果,建議先拿測試用的假金鑰試過再上線
  • 本文是依官方發行說明整理,沒有涵蓋所有修正,完整清單請看兩個版本的發行頁

我的看法

我自己用 Claude Code,最在意的就是「它能碰到什麼」。這兩版給我的感覺是:官方正在把「代理能做的事」一圈一圈收緊,而且是從實際被繞過的地方開始補。

其中最有用的是憑證遮罩。很多人把 API 金鑰放在 .env,AI 代理又常常需要讀專案檔案,兩者撞在一起就是風險。常見的做法是「乾脆不給它讀」,現在多了一個選項:「給它讀,但讀到的是假的」,實用多了。不過這是新功能,我會把它當成多一層保險,而不是唯一的防線;金鑰仍然要放環境變數、不進版本控制。

另外,如果你習慣開很多 worktree 讓代理平行跑,這次的修正值得馬上更新:隔離一旦有縫,你以為不會影響主目錄的操作,其實會影響。

名詞小辭典

  • worktree:git 的功能,讓同一個專案同時有多個工作資料夾,各自在不同分支。
  • 沙箱(Sandbox):把程式關在受限的環境裡執行,讓它碰不到外面的重要東西。
  • hook:在特定事件(例如工具執行前)自動觸發的檢查或腳本。
  • 代理(Proxy):站在中間幫忙轉送網路請求的服務,這裡負責在請求送出時替換真正的憑證。

資料來源

常見問題

git worktree 是什麼?
是 git 的功能:讓同一個專案同時有好幾個工作資料夾,各自在不同分支上,彼此不干擾。Claude Code 用它讓代理在獨立資料夾工作,避免弄亂你的主目錄。
憑證檔「遮罩」是什麼意思?
AI 代理執行的指令如果讀到真的金鑰檔,金鑰就可能被印出來或被送走。遮罩模式讓沙箱內的指令只讀到替身內容;真的值只在沙箱代理對外送出請求時才被替換進去,所以指令本身拿不到真金鑰。
要怎麼更新?
更新 Claude Code 到 2.1.222 或更新的版本即可,可以用 claude --version 確認目前版本。本文沒有涵蓋你的安裝方式,請依你原本的安裝方法更新。
LINE