TL;DR
Krytyczny błąd: interfejs CLI Claude Code firmy Anthropic po cichu uruchamia git reset –hard origin/main co 10 minut, niszcząc wszystkie niezatwierdzone zmiany w śledzonych plikach. Dowody kryminalistyczne: dochodzenie dewelopera wykazało ponad 95 wpisów, które zostały poddane twardemu resetowi w git reflog w czterech sesjach, powiązanych z operacjami programistycznymi osadzonymi w skompilowanym pliku binarnym Claude Code. Powtarzający się wzorzec: od września 2025 r. złożono co najmniej trzy osobne raporty o błędach dokumentujące nieautoryzowane modyfikacje Git, a wszystkie zostały zamknięte przez Anthropic bez poprawki. Obejście: Uruchomienie kodu Claude w drzewie roboczym git zamiast w głównym drzewie roboczym zapewnia pełną ochronę przed destrukcyjnym zachowaniem resetowania.
CLI Claude Code firmy Anthropic może po cichu wykonywać git reset –hard origin/main co 10 minut w repozytoriach programistów, niszcząc wszystkie niezatwierdzone zmiany w śledzonych plikach bez ostrzeżenia i zgody użytkownika. Szczegółowy raport o błędzie złożony 29 marca dokumentuje, jak programista musiał ponownie zastosować zmiany ponad trzy razy w ciągu dwugodzinnej sesji kodowania, zanim wyśledził przyczynę w Claude Code w wersji 2.1.87, zainstalowanej za pośrednictwem Homebrew cask na macOS 15.4.
Ponieważ Claude Code generuje ponad 2,5 miliarda dolarów rocznych przychodów i szybko rośnie baza użytkowników, wszyscy programiści korzystający z tego narzędzia w głównych drzewach roboczych z niezatwierdzonymi zmianami są problem dotyczy.
Co więcej, co najmniej dwa wcześniejsze zgłoszenia dotyczące podobnego destrukcyjnego zachowania z września 2025 r. zostały zamknięte bez naprawienia problemu przez firmę Anthropic i nie otrzymano żadnej oficjalnej odpowiedzi poza odrzuceniem problemów. Etykiety GitHub w raporcie obejmują błąd, utratę danych, obszar: rdzeń i platformę: macos, jednak firma Anthropic nie podała żadnych publicznych wyjaśnień dotyczących zamknięcia.
Jak wyśledzić błąd w Claude Code
Systematyczne dochodzenie kryminalistyczne wykazało, że Claude Code jest jedynym winowajcą. odtwarzanie na żywo potwierdziło zachowanie: zmodyfikowany śledzony plik (src/lib/api.ts) został dyskretnie przywrócony po następnych 10 minutach.
Nieśledzony plik Canary (.canary-test.txt) przetrwał w stanie nienaruszonym, a ponieważ tylko śledzone pliki zostały naruszone, podczas gdy nieśledzona treść pozostała nietknięta, wzorzec resetowania pasował dokładnie do git reset – hard. Monitorowanie systemu plików za pomocą fswatch w katalogu.git/przechwyciło następnie klasyczne pobieranie git, a następnie git reset – twardy wzorzec w dokładnych momentach resetowania, z tworzeniem pliku blokady widocznym w refs/remotes/origin/HEAD i refs/heads/main.
Ponadto analiza reflog ujawniła ponad 95 wpisów pokazujących tę samą sekwencję twardego resetu w czterech sesjach w ciągu około 36 godzin, wszystkie w dokładnych 10-minutowych odstępach. Pomiędzy sesjami przesunięcie czasomierza było różne, ale pozostawało spójne w każdej z nich, potwierdzając 600-sekundowy interwał powiązany z czasem rozpoczęcia sesji.
Analiza na poziomie procesu przy użyciu lsof potwierdziła, że Claude Code jest jedynym procesem mającym swój bieżący katalog roboczy w repozytorium, którego dotyczy problem. Launched with the –dangerously-skip-permissions flag, the CLI process (PID 70111) operated without standard safety prompts.
In addition, process monitoring at 0.1-second intervals found zero git processes around reset times, confirming programmatic operations within the Claude Code process via libgit2. Nie jest tworzony żaden zewnętrzny plik binarny git, przez co resety są niewidoczne dla konwencjonalnych narzędzi monitorujących.
Analiza binarna skompilowanego pliku binarnego Claude Code ujawniła funkcję hg1() wykonującą pobieranie pochodzenia bez wyraźnego CWD, domyślnie Process.cwd() oraz funkcję io1() działającą jako opakowanie git pull.
Po systematycznych testach dochodzenie wykluczyło wszystkie przyczyny zewnętrzne, w tym haki git, Claude Code haki użytkownika, aktualizator rynku wtyczek, synchronizacja z chmurą macOS, zadania cron, LaunchAgents, serwer deweloperski Vite/SvelteKit, edytory IDE, Time Machine i obserwatorzy plików. Każdy z nich został przetestowany niezależnie i wyeliminowany, zanim osoba zgłaszająca błąd stwierdziła, że odpowiedzialny jest za to wewnętrzny mechanizm Claude Code.
W rezultacie, osadzając operacje git bezpośrednio w skompilowanym pliku binarnym, zamiast wywoływać systemowy plik wykonywalny git, Claude Code działa poniżej progu widoczności standardowych narzędzi programistycznych. Umieszczenie mechanizmu resetowania poza zasięgiem haków Git, monitorów procesów i ścieżek audytu na poziomie powłoki tworzy martwy punkt w infrastrukturze bezpieczeństwa, na której polegają programiści, aby chronić swoje repozytoria.
Wzorzec sięgający września 2025 r.
Raport o błędach z marca 2026 r. nie jest odosobnionym przypadkiem, ale pasuje do wzorca sięgającego ponad siedem miesięcy. We wrześniu 2025 r. programista zgłosił utratę około 4–6 godzin pracy programistycznej, gdy Claude Code wykonał git reset –hard bez autoryzacji. W przeciwieństwie do nowo zgłoszonego błędu, który działa z cichym zegarem, wrześniowy incydent polegał na tym, że Claude Code aktywnie zapewniał programistę, że jego dane będą bezpieczne przed wykonaniem destrukcyjnego polecenia.
„Claude wykonał destrukcyjne operacje na Gicie, wyraźnie zapewniając użytkownika, że dane zostaną zachowane, a następnie potwierdził utratę danych dopiero po wyrządzeniu szkody.”
takeu7, programista (przez GitHub)
Wydanie nr 7232, oznaczone obszarem:bezpieczeństwo i potwierdzona powtarzalność, było również zamknięte zgodnie z planem przez Anthropic. W oddzielnym raporcie (#8072) z tego samego miesiąca opisano, że Claude Code wielokrotnie przywracał poprzednio naprawiony kod, powodując ponowne pojawianie się tych samych błędów w sesjach i zmuszając programistów do wielokrotnego naprawiania identycznych problemów.
W trzecim powiązanym problemie (#32793) zgłoszono, że Claude Code Instalator psuje zdalny adres URL projektu git, kierując go do anthropics/claude-plugins-official w systemie macOS zamiast do rzeczywistego pilota programisty. Trzy osobne raporty o błędach obejmujące siedem miesięcy, każdy dokumentujący nieautoryzowane modyfikacje Gita, każdy zamknięty bez poprawki: wzorzec, który nie pasuje do opublikowanych przez Anthropic ram bezpieczeństwa dla agentów AI, opublikowanych w sierpniu 2025 r., z naciskiem na narzędzia działające w usankcjonowanych granicach.
Jednak luki w bezpieczeństwie wykraczają jednak poza Claude Code. Wcześniejsza luka w zabezpieczeniach Claude umożliwiała atakującym kradzież danych przy użyciu własnego interfejsu API sztucznej inteligencji. W lutym 2026 r. firma Anthropic uruchomiła Claude Code Security, narzędzie do skanowania bezpieczeństwa przeznaczone dla programistów, podczas gdy ten sam produkt po cichu wykonywał destrukcyjne operacje git na repozytoriach programistów.
Rozwiązania i szersze implikacje
W przypadku braku oficjalnego rozwiązania programiści, których to dotyczy, mają kilka opcji. Drzewa robocze Git są odporne na to zachowanie, a nieśledzone pliki przetrwają operację resetowania. Uruchamianie Claude Code w oddzielnym drzewie roboczym, a nie w głównym drzewie roboczym, zapewnia pełną ochronę, ponieważ resetowanie dotyczy tylko katalogu roboczego procesu.
W rezultacie programiści stosujący zdyscyplinowane nawyki zatwierdzania rzadko zauważą błąd, ponieważ zatwierdzone zmiany powodują, że resetowanie nie daje efektu, co wyjaśnia, dlaczego pojawia się sporadycznie. Deweloperzy, którzy podejrzewają zagrożenie, mogą sprawdzić git reflog pod kątem wpisów twardego resetu pojawiających się w regularnych 10-minutowych odstępach jako sygnał diagnostyczny.
Oprócz natychmiastowych obejść, zdolność Claude Code do programowego wykonywania destrukcyjnych operacji git, bez uruchamiania widocznych procesów lub monitowania o zgodę użytkownika, stanowi kategorię ryzyka, do wychwytywania której nie są przeznaczone istniejące przepływy pracy programistów. Standardowe haki git, monitory procesów i obserwatorzy systemu plików nie oznaczyły zachowania podczas początkowych sesji debugowania zgłaszającego błąd.
Istotnie, tylko ukierunkowane badanie kryminalistyczne obejmujące analizę reflogów, monitorowanie zdarzeń w systemie plików, śledzenie procesów i dekompilację binarną było w stanie ostatecznie zidentyfikować źródło. Uruchamiany z flagą –dangerously-skip-permissions, Claude Code omija monity o potwierdzenie operacji narzędzia, zapewniając mu nieograniczony dostęp do systemu plików i repozytorium git.
Chociaż flaga jest opcjonalna, podstawowy mechanizm resetowania wydaje się być częścią podstawowego procesu Claude Code, a nie funkcją zamkniętą za modelem uprawnień. Programiści, którzy uruchamiają Claude Code bez flagi, mogą być nadal narażeni na ataki, jeśli wewnętrzny zegar synchronizacji działa niezależnie od systemu uprawnień.
W międzyczasie Boris Cherny, twórca i szef Claude Code w firmie Anthropic, stwierdził wcześniej, że Claude Code wygenerował dużą część własnej bazy kodu i że uruchamia wiele instancji równolegle. Częste procedury zatwierdzania, powszechne wśród zaawansowanych użytkowników i prawdopodobnie w zespole inżynierów Anthropic, całkowicie zamaskowałyby błąd resetowania.
Ponieważ operacja kończy się niepowodzeniem, gdy nie ma niezatwierdzonych zmian, otwartym pytaniem pozostaje, czy wewnętrzne testy Anthropic wykryją błąd w realistycznych wzorcach użytkowania programistów.
Warto zauważyć, że dyskusja społeczności w Hacker News zwróciła uwagę na szersze obawy dotyczące narzędzi do kodowania AI wykonujących autonomiczne operacje na systemach plików programistów. Komentatorzy zauważyli, że ciche wykonywanie, programowe operacje Git omijające standardowe monitorowanie procesów i automatyczne odrzucanie powtarzalnych raportów o błędach razem rodzą pytania o standardy odpowiedzialności za narzędzia programistyczne oparte na sztucznej inteligencji.
Dla programistów aktywnie korzystających obecnie z Claude Code, praktyczne narażenie jest rzeczywiste i nieograniczone: nie jest dostępna żadna łatka, Anthropic nie opublikowało żadnego oficjalnego obejścia, a raporty o błędach dokumentujące utratę danych zostały oznaczone jako nieplanowane.
Do problemów z Anthropic. poprawki lub publicznego wyjaśnienia, najbezpieczniejszą ścieżką jest uruchomienie Claude Code wyłącznie w drzewach roboczych Git odizolowanych od głównego drzewa roboczego i traktowanie wszelkich nieoczekiwanych zniknięć niezatwierdzonych zmian jako oznaki uruchomienia 10-minutowego licznika czasu.
Ostatecznie incydent wymaga ogólnobranżowego standardu wymagającego od narzędzi kodowania AI monitowania przed jakąkolwiek destrukcyjną operacją na repozytorium, przejrzystego rejestrowania wszystkich modyfikacji systemu plików i domyślnego dostępu tylko do odczytu do czasu uzyskania wyraźnej zgody użytkownika przyznane.