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

Komentarz SavvyNik po angielsku o ustaleniach Apiiro, historii Git i działaniach naprawczych

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

  1. Unieważnij albo zmień potencjalnie ujawnione poświadczenie. Usunięcie pliku nie odbiera ważności zawartemu w nim kluczowi czy tokenowi.
  2. Sprawdź repozytorium i historię Git. Wyszukaj .claude/settings.local.json oraz 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.
  3. Usuń plik z bieżącego śledzenia i dodaj go do .gitignore repozytorium. To ogranicza ryzyko kolejnego zatwierdzenia pliku, ale nie usuwa jego wcześniejszych kopii z historii, forków ani klonów.
  4. 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.