Słabość w Claude Code CLI na macOS: dowolny proces użytkownika odczyta zapisane tokeny

Claude Code CLI przechowuje na macOS token dostępu i długożyjący token odświeżania w pozycji pęku kluczy o nazwie „Claude Code-credentials”. Silverfort pokazał, że tę pozycję może odczytać dowolny proces działający na koncie użytkownika — bez monitu i bez podnoszenia uprawnień.

  • ŹródłoSilverfort
  • Publikacja źródła28 lipca 2026
  • TypZagrożenia i incydenty

Co się wydarzyło

CLI tworzy pozycję w pęku kluczy, wywołując systemowe narzędzie „security” bez argumentów kontroli dostępu. Pozycja dziedziczy więc domyślną listę ACL, która ufa temu właśnie narzędziu — podpisanemu przez Apple, ogólnego przeznaczenia. Ponieważ każdy proces na koncie użytkownika może je uruchomić, ACL nie ogranicza niczego: jedno polecenie zwraca pełny komplet poświadczeń w formacie JSON. Dla porównania Claude Desktop używa mechanizmu safeStorage: w pęku kluczy trzyma tylko klucz szyfrujący związany z podpisaną aplikacją, a przy próbie odczytu przez inny proces macOS prosi o hasło.

Silverfort klasyfikuje to jako wadę projektową implementacji (CWE-732, CWE-522), nie klasyczną podatność. Testowano wersję 2.1.185. Na Linuksie i Windowsie dane leżą w pliku JSON (na Linuksie z uprawnieniami 0600).

Najważniejsze ustalenia

  • Skradziony token odświeżania (prefiks sk-ant-ort) daje trwały dostęp do konta Anthropic oraz do podłączonych serwerów MCP, na przykład GitHub czy Atlassian, wraz z danymi i akcjami, którymi te serwery sterują.
  • Pakiet poświadczeń można odtworzyć na innej maszynie i działać jako ofiara; token pozostaje ważny do chwili wyłączenia konta przez organizację — sam reset hosta nie wystarcza.
  • Typowe wektory to infostealery, złośliwe skrypty poinstalacyjne i wrogie rozszerzenia IDE, uruchamiane z prawami zwykłego użytkownika.
  • Zgłoszenie przez HackerOne 25 czerwca 2026 Anthropic zamknął po 19 minutach jako „Informative”, wskazując, że procesy tego samego użytkownika są w pełni zaufane; po prośbie o ponowną ocenę podtrzymał klasyfikację i zapowiedział zaostrzenie ACL jako zmianę typu defense-in-depth, nie poprawkę podatności.

Dlaczego to ważne

Komentarz SafeWaveIstotne dla każdego, kto używa Claude Code na stacjach deweloperskich: token w pęku kluczy jest realnym celem dla infostealera, a jego kradzież otwiera nie tylko konto, ale i podłączone serwery MCP. Do czasu zmiany po stronie dostawcy warto wykrywać odczyty pozycji „Claude Code-credentials” w oparciu o rodowód procesu (legalne odczyty pochodzą od binarki Claude), monitorować prefiksy sk-ant-oat oraz sk-ant-ort i to samo poświadczenie używane z wielu hostów. Przy podejrzeniu konieczna jest rotacja — wylogowanie, ponowne logowanie i wymiana kluczy w konsoli; samo wyczyszczenie endpointu nie unieważnia tokenu odświeżania.