Apiiro opisało, jak zatwierdzenie komendy w Claude Code może zapisać hasło lub token w pliku ustawień projektu. Jeśli taki plik trafi do publicznego repozytorium, zawarte w nim dane mogą zostać ujawnione. W badaniu danych z publicznego GitHuba zebranych 1–3 listopada 2026 r. Apiiro wykazało sekrety w 1 122 z 104 185 badanych kopii pliku.
Jak zatwierdzona komenda może zapisać sekret
Opcja „Yes, and don’t ask again” pozwala zapamiętać zgodę na uruchomienie komendy. Według opisu ustalenia Apiiro Claude Code zapisuje zatwierdzoną komendę jako regułę w pliku .claude/settings.local.json. Jeśli jej treść zawiera wpisane wprost hasło, token lub klucz API, sekret może znaleźć się w tym pliku w postaci jawnej. Upublicznienie pliku w repozytorium może wtedy odsłonić jego zawartość.
Co oznaczają liczby dotyczące GitHuba
Apiiro podało, że w 1 122 kopiach pliku znaleziono łącznie 1 379 różnych sekretów. Około 1,1% zbadanych kopii zawierało co najmniej jeden sekret. Kopie pochodziły ze 103 617 publicznych repozytoriów. Badanie objęło publiczne dane z GitHuba; te liczby nie opisują wszystkich użytkowników Claude Code ani częstości występowania sekretów w prywatnych repozytoriach.
Szerszy bilans Apiiro wyniósł 2 539 sekretów w 1 994 repozytoriach i 63 organizacjach. Obejmował również historię Git oraz inne pliki związane z agentami, dlatego nie jest to liczba plików z poprzedniej próby ani inny zapis wyniku 1 122.
Apiiro nie testowało znalezionych poświadczeń. Według firmy jedna organizacja potwierdziła, że jeden ujawniony klucz był aktywny.
Dlaczego usunięcie pliku nie usuwa śladów w Git
Opisywany przez Apiiro globalny wyjątek Git działa lokalnie i sam nie dodaje reguły do .gitignore konkretnego repozytorium. Nie obejmuje też pliku, który Git już śledzi, ani nie przenosi się wraz z projektem. Jeśli plik został wcześniej zatwierdzony w repozytorium, skasowanie bieżącej kopii nie usuwa jego wcześniejszych wersji z historii ani kopii w forkach i klonach.
Przy podejrzeniu ujawnienia najpierw unieważnij lub zmień poświadczenie. Usunięcie pliku nie cofa jego historii w Git.
Co zrobić po możliwym ujawnieniu
- Unieważnij albo zmień potencjalnie ujawnione poświadczenie. Usunięcie pliku nie odbiera ważności zawartemu w nim kluczowi czy tokenowi.
- Sprawdź repozytorium i historię Git. Wyszukaj
.claude/settings.local.jsonoraz inne miejsca, w których mogła znaleźć się ta sama wartość. Ustal, czy plik był śledzony i czy występuje w wcześniejszych commitach. - Usuń plik z bieżącego śledzenia i dodaj go do
.gitignorerepozytorium. To ogranicza ryzyko kolejnego zatwierdzenia pliku, ale nie usuwa jego wcześniejszych kopii z historii, forków ani klonów. - Przejrzyj lokalny plik ustawień i nie wpisuj sekretów wprost do zatwierdzanych komend. Właśnie tak zapisane wartości mogą znaleźć się w zapamiętanej regule.
Dlaczego skanery mogą przeoczyć sekret
Apiiro podało, że 215 z 1 122 plików zawierających sekrety nie zostało wykrytych ani przez Gitleaks, ani przez TruffleHog. Hasło umieszczone w komendzie powłoki lub nagłówku żądania może nie przypominać typowego klucza dostawcy, którego szukają wzorce skanerów. Wynik wskazuje więc na konkretną lukę w wykrytych plikach, a nie na gwarancję, że samo skanowanie wykluczy podobne ujawnienie.