Claude Code 2.1.325: Bash w sandboxie pyta o uprawnienia
Claude Code 2.1.325 z 13 listopada 2026 łata błąd bezpieczeństwa w zstd, a Bash w sandboxie, zaplanowane zadania i /loop pytają o zgodę. Co teraz ustawić.

Claude Code 2.1.325 (otwiera się w nowej karcie), opublikowany 13 listopada 2026, łata błąd bezpieczeństwa w dekodowaniu odpowiedzi skompresowanych zstd, więc warto go zainstalować. Najpierw jednak zmień ustawienia: wydanie każe pytać o zgodę w trzech miejscach, w których dotąd nikt nie pytał. Polecenia Bash w sandboxie przechodzą teraz zwykłą ścieżkę uprawnień; ustaw sandbox.autoAllowBashIfSandboxed: true, żeby dalej szły bez pytania, a w ustawieniach zarządzanych ustaw ten klucz w najwyżej postawionym źródle. Zaplanowane zadania i / pytają teraz przed uruchomieniem skilla, który deklaruje allowed-tools albo hooki; dla każdego takiego skilla dodaj Skill(nazwa) do permissions.allow. Polecenia git tylko do odczytu pytają w repozytorium, które nie jest repozytorium projektu ani zaufanym; wskaż je przez --add-dir. W przebiegu claude -p, w którym nikt nie odpowie, pytanie bez odpowiedzi oznacza odrzucone polecenie: przebieg idzie dalej bez niego, więc zadanie CI nie zatrzymuje się na kroku, który się już nie wykonuje. Na 15 listopada 2.1.325 ma w npm tagi latest i next, a stable wskazuje wciąż 2.1.311, które niczego z tego nie zawiera. Każde twierdzenie sprawdziliśmy 15 listopada 2026 w informacjach o wydaniu, changelogu, rejestrze npm i dokumentacji Claude Code; nowej wersji nie uruchamialiśmy.
Co się zmieniło w Claude Code 2.1.325
Informacje o wydaniu 2.1.325 mają 139 pozycji: 88 poprawek, 30 zmian, 14 ulepszeń, sześć nowości i jedno usunięcie. Pierwsza to poprawka bezpieczeństwa: „Fixed a security issue in how zstd-compressed responses are decoded”. To, co zmienia działanie bez pytania, jest wśród 30 zmian:
| Zachowanie | 2.1.323 i wcześniejsze | 2.1.325 | Żeby działało bez nadzoru |
|---|---|---|---|
| Polecenie Bash w sandboxie | Działa bez pytania (domyślnie true) | Zwykła ścieżka uprawnień (domyślnie false) | sandbox.autoAllowBashIfSandboxed: true |
| To samo, gdy sandbox włączają ustawienia zarządzane | Działa bez pytania | Zwykła ścieżka uprawnień | Ten sam klucz w najwyżej postawionym źródle zarządzanym |
Zaplanowane zadanie lub / uruchamia skill z allowed-tools lub hookami | Uruchamia | Najpierw pyta | Skill(nazwa) w permissions.allow |
| Polecenie git tylko do odczytu w repozytorium niewskazanym ani niezaufanym | Działa | Najpierw pyta | Wskaż repozytorium przez --add-dir, nie przez additionalDirectories |
| Sesja self-hosted runnera z folderem lub ścieżką repozytorium jako dowiązaniem symbolicznym | Startuje | Odrzucona, poza checkoutem z hooka checkout | Wskaż runnerowi prawdziwą ścieżkę |
Daty ustala rejestr. Rejestr npm (otwiera się w nowej karcie) notuje 2.1.323 o 20:29 UTC 12 listopada, 2.1.324 o 18:42 UTC 13 listopada i 2.1.325 o 20:07 UTC tego samego dnia, 85 minut później; GitHub opublikował wydanie o 20:40 UTC. 2.1.324 nie ma wydania na GitHubie ani wpisu w changelogu (otwiera się w nowej karcie), który przeskakuje z 2.1.323 od razu do 2.1.325. A jednak dokumentacja ustawień (otwiera się w nowej karcie) mówi o autoAllowBashIfSandboxed: „Default: false. Before v2.1.324, the default was true”. Traktuj więc każdą maszynę na 2.1.324 jak już zmienioną, a 2.1.323 jako ostatnią wersję ze starymi ustawieniami domyślnymi. To druga w ciągu miesiąca zmiana domyślnych uprawnień, która dotyka przebiegów headless: Claude Code 2.1.299 do 2.1.302 w październikowym przeglądzie opisuje wydanie, które zmieniło tryb uprawnień, w którym startują niektóre przebiegi claude -p, i to, dlaczego w CI przypinamy wersję.
Reszta pracy nad bezpieczeństwem jest w poprawkach. Kilka zamyka luki w sprawdzaniu uprawnień Basha: niektóre polecenia złożone działały bez pytania, reguła allow dla Basha mogła uruchomić inny program niż ten, który nazywa, a część reguł deny i ask nie obejmowała niektórych poleceń Bash albo, zapisana jako ścieżka względna, jak Read(./, przestawała obejmować projekt po cd. Trzy uszczelniają sandbox: w niektórych przypadkach blokuje teraz zapis poleceń z sandboxa do folderu pobierania natywnego updatera, w pełni chroni ustawienia i hooki worktree oraz wspólny folder git podpiętego worktree. Sandbox odmawia też teraz zapisu do ustawień, skilli, agentów, komend i hooków w .claude w dodanych katalogach, tak jak robił to w folderze startowym, a własne programy pomocnicze, takie jak most sieciowy, uruchamia bez tokenów logowania i kluczy API Claude Code w środowisku.
Co robi autoAllowBashIfSandboxed
sandbox.autoAllowBashIfSandboxed decyduje, czy polecenie działające w sandboxie wymaga zgody. Dokumentacja sandboxa (otwiera się w nowej karcie) nazywa wartość true trybem auto-allow: Claude Code zatwierdza polecenie automatycznie, bez pytania, gdy działa ono w sandboxie. Przy false, w zwykłym trybie uprawnień, wszystkie polecenia Bash przechodzą zwykłą ścieżkę uprawnień, nawet w sandboxie. Dokumentacja ustawień dodaje granice auto-allow: reguły deny i reguły ask z treścią, takie jak Bash(git push *), nadal działają, gołą regułę ask Bash sandbox pomija, a polecenie, którego nie da się uruchomić w sandboxie, i tak przechodzi zwykłą ścieżkę. Klucz zmienia krok zatwierdzania przed sandboxem, a nie to, co sandbox pozwala poleceniu czytać, zapisywać czy otwierać w sieci.
Kogo to dotyczy i jak to sprawdzić
Dotyczy cię, jeśli maszyna albo runner przechodzi na 2.1.324 lub nowszą wersję i spełniony jest jeden z warunków:
- Sandbox jest włączony, a ty liczysz na to, że pomija pytania. Sesje interaktywne zaczynają pytać o każde polecenie w sandboxie, którego nie obejmuje żadna reguła allow. Jeśli zespół wybrał sandbox po to, żeby nie zatwierdzać każdego
npm test, to tę zmianę zauważy pierwszą. - Organizacja włącza sandbox przez ustawienia zarządzane. Każdy programista objęty tą polityką dostaje pytania, dopóki sama polityka nie ustawi
autoAllowBashIfSandboxed. - Uruchamiasz Claude Code bez nadzoru:
claude -pw CI, zadanie z crona, aplikację na Agent SDK, zaplanowane zadanie albo/. Według dokumentacji trybu headless (otwiera się w nowej karcie) przebiegloop claude -pw trybie Manual odrzuca wywołanie wymagające zgody, chyba że zatwierdzi je hookPermissionRequestalbo--permission-prompt-tool, a od 2.1.302 przebieg-pstartuje w trybie Manual, gdy nic nie ustawia trybu (tę zmianę opisaliśmy w przeglądzie z 18 października, linkowanym wyżej). W zwykłym CI zadanie więc nie wisi: polecenie zostaje odrzucone, a praca, którą miało wykonać, się nie odbywa. Inaczej jest w aplikacji Agent SDK z callbackiemcanUseToolalbo w przebiegu z narzędziem do pytań o zgodę: tam, jak opisuje dokumentacja o pytaniach o zgodę w przebiegach bez nadzoru (otwiera się w nowej karcie), przebieg czeka na odpowiedź hosta. - Zaplanowane zadania lub pętle wywołują skille, które deklarują
allowed-toolsalbo hooki.allowed-toolsw skillu daje te narzędzia bez zgody na turę, która go wywołuje, jak mówi dokumentacja skilli (otwiera się w nowej karcie), i właśnie dlatego zaplanowane uruchomienie pyta teraz przed takim skillem.
Trzy polecenia mówią, gdzie jest dana maszyna. claude --version podaje wersję. claude doctor pokazuje instalację i ostatnią próbę automatycznej aktualizacji. / w sesji pokazuje wiersz Setting sources, który nazywa obowiązujące źródło zarządzane, na przykład Enterprise managed settings (file).
Kiedy zmiana do ciebie dotrze, zależy od kanału wydań. Instalacje natywne domyślnie idą za latest; z autoUpdatesChannel: "stable" idą za wersją, która według dokumentacji instalacji (otwiera się w nowej karcie) ma zwykle około tygodnia i pomija wydania z poważnymi regresjami. 15 listopada 2026 tag stable w rejestrze wskazuje 2.1.311, opublikowane 26 października. Cask Homebrew claude-code idzie za stable, a claude-code@latest za latest; instalacje z Homebrew, WinGet, apt, dnf i apk domyślnie same się nie aktualizują.
Jak zaktualizować Claude Code do 2.1.325 bez nowych pytań o zgodę
Znajdź każdą instalację i jej kanał
Na każdym laptopie, obrazie runnera i serwerze uruchom
claude --versioniclaude doctor. Zanotuj, które idą zalatest(mogą już mieć 2.1.325), a które zastablealbo przypiętą wersją (15 listopada 2.1.311 lub starszą). Obrazy CI, które instalują@anthropic-ai/, dostaną zmianę przy najbliższym buildzie.claude-code@latest Zdecyduj o auto-allow w sandboxie i ustaw je tam, gdzie wygrywa
Jeśli polecenia w sandboxie mają dalej działać bez pytania, ustaw
sandbox.autoAllowBashIfSandboxednatrueoboksandbox.enabled. Dla zespołu wpisz to do commitowanego.claude/, dla jednej osoby dosettings.json ~/. W ustawieniach zarządzanych dodaj klucz do bloku.claude/ settings.json sandboxw źródle, które wskazuje/, czyli w najwyżej postawionym.status Zezwól na skille z zaplanowanych zadań i pętli
Dla każdego skilla wywoływanego przez zaplanowane zadanie albo
/, który deklaruje we frontmatterzeloop allowed-toolslubhooks, dodajSkill(nazwa)dopermissions.allow, alboSkill(nazwa *), gdy przyjmuje argumenty. Zezwalaj tylko na skille, które mają działać bez nadzoru.Wskaż dodatkowe repozytoria i sprawdź ścieżki runnerów
Jeśli Claude uruchamia polecenia git tylko do odczytu w drugim repozytorium, startuj sesję z
--add-dir <ścieżka>; ustawienieadditionalDirectoriesjuż nie wyłącza pytania. Na self-hosted runnerach upewnij się, że folder sesji i ścieżka repozytorium nie są dowiązaniami symbolicznymi.Niech przebiegi bez nadzoru zawodzą głośno
Dodaj
--permission-prompts nonedo zaplanowanych zadańclaude -palbo ustawpermissions.denyInsteadOfPrompting: truew ustawieniach użytkownika lub zarządzanych, żeby przebieg nigdy nie czekał na pytanie, na które nikt nie odpowie. Z--output-format stream-jsonczytaj listępermission_denialsw końcowym wyniku i oznaczaj zadanie jako nieudane, gdy nie jest pusta.Zaktualizuj i uruchom każde zadanie raz pod okiem
Uruchom
claude updatealbo, dla instalacji z npm,npm install -g @anthropic-ai/. Potem uruchom jedno zadanie CI, jedno zaplanowane zadanie i jedną sesję interaktywną z włączonym sandboxem i sprawdź, że żadne nie pyta ani nie zgłasza odmowy, której się nie spodziewasz.claude-code@2.1.325
Ustawienia dla zespołu, który chce starego zachowania, w .claude/ (zamień nightly-report na nazwę swojego skilla):
{
"sandbox": {
"enabled": true,
"autoAllowBashIfSandboxed": true
},
"permissions": {
"allow": ["Skill(nightly-report)"]
}
}Ustawienia zarządzane: które źródło jest najwyżej
„Najwyżej postawione źródło zarządzane” ma ścisłe znaczenie. Dokumentacja ustawień zarządzanych (otwiera się w nowej karcie) ustawia źródła w tej kolejności: ustawienia zdalne z claude.ai albo z bramy Claude apps, potem polityki MDM lub systemowe (plist w macOS albo klucz rejestru HKLM), potem pliki ustawień zarządzanych (managed-settings.json razem z managed-settings.d/), na końcu rejestr HKCU w Windows. Domyślnie (managedSourcesBehavior: "first-wins") Claude Code bierze najwyższe źródło, które dostarcza choć jeden klucz polityki, a resztę pomija bez ostrzeżenia. autoAllowBashIfSandboxed nie należy do nielicznych kluczy czytanych ze wszystkich źródeł, więc wartość w niższym źródle nic nie da.
W praktyce: jeśli organizacja używa ustawień zarządzanych z serwera, z konsoli claude.ai, i do tego rozsyła managed-settings.json, klucz trzeba wpisać do polityki w konsoli. Jeśli plik jest jedynym źródłem, klucz idzie do pliku: / w macOS, / w Linuksie i WSL albo C:\Program Files\ClaudeCode\managed-settings.json w Windows:
{
"sandbox": {
"enabled": true,
"allowUnsandboxedCommands": false,
"autoAllowBashIfSandboxed": true
}
}Potem sprawdź jedną maszynę: / powinien wskazać zmienione źródło, a wiersz Skipped sources wymienia źródła, które przykryło wyższe. Ustawienie klucza w ustawieniach zarządzanych ma drugi skutek: dokumentacja sandboxa zauważa, że przy sandboxie wymaganym przez administratora pliki repozytorium wciąż mogą ustawić autoAllowBashIfSandboxed, a ustawienie go w ustawieniach zarządzanych nie pozwala repozytorium tego zmienić.
Na co uważać
- Auto-allow to wybór, nie przycisk przywracania. Anthropic uczynił pytanie ustawieniem domyślnym. Jeśli włączasz auto-allow z powrotem, ustaw też
allowUnsandboxedCommands: false(tryb strict sandbox w/). Według dokumentacji sandboxa (otwiera się w nowej karcie) Claude Code ignoruje wtedy ponowną próbę zsandbox dangerouslyDisableSandbox, więc polecenie, które zawiedzie w sandboxie, nie uruchomi się po prostu poza nim. - Brak ostrzeżenia dla poprawki zstd. Na 15 listopada 2026 notatki nie linkują żadnego ostrzeżenia i nie podają CVE, wersji, których błąd dotyczy, ani wagi, więc my też ich nie podajemy. Obserwuj ostrzeżenia bezpieczeństwa (otwiera się w nowej karcie) repozytorium, gdyby jakieś pojawiło się później.
- Stable zostaje w tyle. Zespół na
stablema stare ustawienia domyślne i nie ma poprawek z 2.1.325, dopóki kanał nie przejdzie na 2.1.325 lub nowszą wersję. Wcześniejsze przejście na 2.1.325 oznacza przyjęcie nowych ustawień domyślnych od razu, więc najpierw wykonaj kroki powyżej. ZautoUpdatesChannel: "stable"instalacja natywna cofa się do wersji stable, nawet jeśli twoja jest nowsza, chyba że ustawiszminimumVersion. - Zwykły Windows nie ma sandboxa. Według dokumentacji sandboxa (otwiera się w nowej karcie) sandbox działa na macOS, Linuksie i WSL2; na zwykłym Windowsie Claude Code uruchamia polecenia bez sandboxa i tak czy inaczej przechodzą one zwykłą ścieżkę uprawnień.
- Mniejsze zmiany dla przebiegów bez nadzoru. Również z notatek 2.1.325, linkowanych wyżej: „Always allow” w Desktop, IDE i hostach SDK proponuje teraz samą regułę tylko wtedy, gdy jej zapisanie znów zezwoli na to polecenie, więc zaplanowane zadanie, które na niej polegało, może teraz czekać na ciebie.
claude -pbez zapisanych danych konta czeka teraz na nie przed pierwszym zapytaniem, więc pierwszy przebieg w czystym kontenerze CI może ruszyć kilka sekund później. Przebiegi-pi SDK w worktree albo submodule zamontowanym w kontenerze stosują reguły allow z.claude/dopiero wtedy, gdy folder jest zaufany. Claude Code w przeglądarce, zaplanowane zadania w chmurze i sesje Cowork w chmurze startują teraz mimosettings.local.json sandbox.failIfUnavailable, bo kontener w chmurze nie ma sandboxa poleceń.
Wszystkie źródła przeczytaliśmy 15 listopada 2026. Claude Code wychodzi niemal codziennie, więc przed wdrożeniem sprawdź w changelogu, czy nie ma czegoś nowszego.
Co się zmieniło w Claude Code 2.1.325?
Claude Code 2.1.325, opublikowany 13 listopada 2026, łata błąd bezpieczeństwa w dekodowaniu odpowiedzi skompresowanych zstd i ma w sumie 139 pozycji. Pracę bez nadzoru psują trzy z nich: polecenia Bash w sandboxie przechodzą domyślnie zwykłą ścieżkę uprawnień, zaplanowane zadania i /loop pytają przed uruchomieniem skilla z allowed-tools lub hookami, a polecenia git tylko do odczytu pytają w repozytorium, którego nie wskazano ani nie uznano za zaufane.
Dlaczego Claude Code pyta teraz o zgodę na polecenia w sandboxie?
Bo w 2.1.324 domyślna wartość sandbox.autoAllowBashIfSandboxed zmieniła się z true na false, a 2.1.325 to ogłosił. Polecenia Bash w sandboxie przechodzą teraz przez reguły allow i tryb uprawnień jak każde inne. Ustaw sandbox.autoAllowBashIfSandboxed na true, żeby wrócić do starego zachowania; w ustawieniach zarządzanych ustaw je w najwyżej postawionym źródle.
Co robi autoAllowBashIfSandboxed?
Przy wartości true Claude Code uruchamia polecenie Bash bez pytania, jeśli działa ono w sandboxie. Reguły deny i reguły ask z treścią, takie jak Bash(git push *), nadal działają, a polecenie, którego nie da się uruchomić w sandboxie, przechodzi zwykłą ścieżkę uprawnień. Od 2.1.324 domyślnie ma wartość false.
Czy sandbox Claude Code działa na Windowsie?
Tylko w WSL2. Sandbox działa na macOS, Linuksie i WSL2; na zwykłym Windowsie Claude Code uruchamia polecenia bez sandboxa, więc przechodzą one zwykłą ścieżkę uprawnień niezależnie od autoAllowBashIfSandboxed.
Czy poprawka zstd w Claude Code 2.1.325 ma CVE?
Na 15 listopada 2026 nie ma. Informacje o wydaniu mówią tylko, że naprawiono błąd bezpieczeństwa w dekodowaniu odpowiedzi skompresowanych zstd; nie linkują żadnego ostrzeżenia i nie podają CVE. Zaktualizuj do 2.1.325, zamiast czekać na CVE.