Claude Code łata siedem sposobów na obejście własnych uprawnień
Wydanie 2.1.214 Claude Code naprawia siedem błędów, przez które polecenia mogły uruchomić się bez pytania o zgodę. Sprawdzamy, kogo to dotyczy.

Claude Code dostał 18 lipca wydanie 2.1.214, a w nim 47 pozycji zmian. Siedem z nich to poprawki jednego typu: sytuacji, w których polecenie mogło się wykonać, chociaż system uprawnień powinien najpierw zapytać Cię o zgodę. To najliczniejsza taka paczka w historii tego narzędzia i dobry moment, żeby sprawdzić, na jakiej wersji siedzisz.
Wszystkie liczby w tym tekście pochodzą z surowego pliku CHANGELOG.md w repozytorium Anthropic, a daty wydań z rejestru npm. To istotne zastrzeżenie, bo sam changelog dat nie zawiera.
Co dokładnie zostało naprawione
System uprawnień w Claude Code polega na tym, że narzędzie przed uruchomieniem polecenia sprawdza, czy mieści się ono w regułach, na które wcześniej się zgodziłeś. Jeśli nie, pokazuje pytanie. Siedem poprawek z 2.1.214 dotyczy przypadków, w których ta kontrola dawała się obejść:
- Reguły z gwiazdką: zapis w stylu
Edit(src/**)zatwierdzał zapis do katalogusrcw dowolnym miejscu drzewa projektu, a nie tylko w tym jednym, o który Ci chodziło. - Windows PowerShell 5.1: polecenia uruchamiane w tej powłoce omijały sprawdzanie uprawnień.
- Przekierowania w Bashu: powłoka interpretowała przekierowania deskryptorów inaczej niż analizator uprawnień, więc kontrola się rozjeżdżała. Teraz w razie wątpliwości narzędzie odmawia zamiast przepuszczać.
- Bardzo długie polecenia: przy poleceniach powyżej 10 tysięcy znaków kontrola myliła się w ocenie. Takie polecenia zawsze wywołują teraz pytanie.
- Składnia zsh: konstrukcje z podstawieniem zmiennych wewnątrz porównań
[[ ]]były traktowane jak zwykły tekst bez znaczenia. - Polecenia
helpiman: część z nich była automatycznie przepuszczana jako nieszkodliwa, choć potrafiły uruchomić podstawienie polecenia albo niebezpieczne opcje. - Sesje zdalne: pytanie o zgodę potrafiło pójść dalej, zanim na Twoim komputerze pojawiło się okno potwierdzenia.
Do tego doszły trzy zmiany zaostrzające zasady. Polecenia docker z flagami przekierowującymi ruch do innego demona (--url, --connection, --identity) wymagają teraz zgody, wcześniej szły bez pytania. Podobnie polecenia file z opcjami -m i -f, dotąd traktowane jako operacja tylko do odczytu. Zmieniło się też dopasowywanie wzorca dir/** w warunkach if: dla hooków, gdzie od teraz trzeba pisać **/dir/**, jeśli zależy Ci na dopasowaniu na dowolnym poziomie.
Anthropic nie nazywa tego podatnościami
Tu robi się ciekawie. Wszystkie te pozycje opisane są w changelogu jako zwykłe poprawki błędów. Sprawdziliśmy rejestr ostrzeżeń bezpieczeństwa repozytorium i na 19 lipca nie ma tam nic nowego. Ostatni wpis pochodzi z 25 czerwca i dotyczy ucieczki z piaskownicy przez ścieżki git worktree.
Warto to zestawić z historią. Anthropic wielokrotnie publikował formalne ostrzeżenia dla błędów, które z opisu brzmią bardzo podobnie do dzisiejszych: „Permission Deny Bypass Through Symbolic Links“, „Command Injection in find Command Bypasses User Approval Prompt“ czy „Path Restriction Bypass via ZSH Clobber Allows Arbitrary File Writes“. Ta sama klasa problemu bywała więc wcześniej zgłaszana jako podatność z własnym identyfikatorem, a tym razem trafiła do changelogu jako lista poprawek.
Nie wyciągamy z tego wniosku o złej woli i nie nazwiemy tych błędów podatnościami, skoro producent tego nie robi. Odnotowujemy różnicę w sposobie komunikowania, bo dla osoby, która śledzi tylko ostrzeżenia bezpieczeństwa, taka paczka przechodzi niezauważona.
Drobna zagadka na marginesie: w rejestrze npm istnieje wersja 2.1.213, opublikowana 17 lipca o 22:26 czasu UTC, ale w changelogu nie ma dla niej żadnej sekcji. Wydanie 2.1.214 poszło niecałe dwie godziny później, o 00:13 UTC 18 lipca. Wygląda to na wydanie techniczne, którego opis scalono z następnym, ale producent tego nigdzie nie tłumaczy.
Kogo to realnie dotyczy
Jeśli używasz Claude Code tak, że każde polecenie zatwierdzasz ręcznie, zmiana niewiele u Ciebie znaczy. Pytanie pojawiało się i będzie się pojawiać.
Problem dotyczy przede wszystkim osób, które skonfigurowały listę reguł automatycznego zatwierdzania, żeby nie klikać w kółko tego samego. To zupełnie normalna praktyka przy dłuższej pracy z agentem, tyle że opiera się na założeniu, że reguła znaczy dokładnie to, co myślisz. Przypadek Edit(src/**) pokazuje, że nie zawsze tak było: reguła miała chronić jeden katalog, a w praktyce otwierała każdy katalog o tej nazwie w projekcie.
Drugą grupą są osoby pracujące na Windowsie, bo poprawka dotycząca PowerShella 5.1 wyłącza całą powłokę z kontroli, a nie pojedynczy wzorzec polecenia.
To już trzeci raz w lipcu, kiedy piszemy o uszczelnianiu tego samego obszaru. Wcześniej było domknięcie luki w zgodzie na firmowe ustawienia w 2.1.207 i utwardzanie narzędzia Agent przeciw prompt injection. Kierunek jest dobry, ale częstotliwość mówi też coś innego: parsowanie poleceń powłoki w celu oceny, czy są bezpieczne, jest po prostu trudne i wciąż się nie domknęło.
Co jeszcze przyszło przy okazji
W 2.1.214 pojawiło się narzędzie EndConversation, którym Claude może zakończyć rozmowę przy próbach obejścia zabezpieczeń albo skrajnie agresywnym zachowaniu użytkownika. Na claude.ai taki mechanizm działa od 2025 roku, teraz trafił do wersji w terminalu.
Dzień później, 19 lipca o 00:53 UTC, wyszło wydanie 2.1.215 z jedną pozycją: Claude przestał sam z siebie uruchamiać polecenia /verify i /code-review. Od teraz odpalasz je świadomie, kiedy faktycznie chcesz przeglądu kodu.
Co z tym zrobić
Sprawdź wersję poleceniem claude --version i zaktualizuj przez claude update. Jeśli masz własne reguły automatycznego zatwierdzania, to dobry moment, żeby je przejrzeć pod kątem wzorców z pojedynczą gwiazdką i upewnić się, że wskazują na katalog, o który Ci chodziło. Więcej o samym narzędziu zebraliśmy na karcie Claude Code.
Opanuj AI‑coding w 5 minut. W każdy poniedziałek.
Konkretne premiery, analizy cen i jeden trik, który przyspieszy Twoją pracę. Po polsku, bez żargonu, prosto na maila.