Automatyczne narzędzia AI obsługujące zgłoszenia w GitHub stają się standardem w nowoczesnym developmentcie, ale niosą ze sobą nową klasę zagrożeń. Najnowszy przykład to luka w Claude Code Action od Anthropic – narzędziu, które umożliwia asystentowi Claude przeglądanie i reagowanie na zgłoszenia w repozytoriach. Badacz bezpieczeństwa RyotaK z japońskiej firmy GMO Flatt Security odkrył, że atakujący może przejąć kontrolę nad repozytorium, wykorzystując zaledwie jeden spreparowany issue i fałszywe konto bota.
Jak fałszywe konto bota omija zabezpieczenia Claude Code
Mechanizm ataku jest zaskakująco prosty. Claude Code GitHub Action domyślnie otrzymuje pełny dostęp do kodu, zgłoszeń, pull requestów i plików workflow w repozytorium. Aby ograniczyć, kto może uruchomić to narzędzie, akcja sprawdza, czy dany użytkownik ma uprawnienia do zapisu. Problem polega na tym, że to sprawdzenie miało lukę – automatycznie ufało każdemu aktorowi, którego nazwa kończy się na [bot], zakładając, że konta botów to zaufane aplikacje GitHub zainstalowane przez administratorów.
Krok po kroku: od issue do pełnego przejęcia
Atak nie wymaga zaawansowanych umiejętności. Zaczyna się od utworzenia zwykłego zgłoszenia w GitHub – to nie jest skomplikowany exploit. Wystarczy, że atakujący zarejestruje własną aplikację GitHub, zainstaluje ją w kontrolowanym przez siebie repozytorium, a następnie użyje jej tokena do otwarcia issue w publicznym repozytorium ofiary. Kiedy Claude Code Action podejmie to zgłoszenie do obsługi, Claude widzi nazwę bota i wpuszcza treść bez dodatkowej weryfikacji.
W tym momencie atakujący przechodzi do kluczowego elementu: pośredniego wstrzyknięcia promptu (indirect prompt injection). RyotaK przygotował treść issue maskującą się jako komunikat o odzyskiwaniu po błędzie. Claude „odzyskuje” system, wykonując ukryte w treści polecenia – między innymi odczytuje zmienne środowiskowe z /proc/self/environ, mimo że Claude Code ma wbudowane zabezpieczenia przed tą konkretną operacją. Wyniki trafiają z powrotem do issue, skąd atakujący może je odebrać.
Te zmienne środowiskowe zawierają dane uwierzytelniające potrzebne do zażądania tokena OIDC. Token można następnie wymienić na instalacyjny token aplikacji Claude GitHub z pełnym dostępem do zapisu w repozytorium – kodu, zgłoszeń i plików workflow. Gdyby atak skierowano na samo repozytorium claude-code-action, możliwe byłoby zatrucie akcji używanej przez tysiące zależnych projektów.
Nie tylko bot – trzy dodatkowe ścieżki ataku
RyotaK odkrył, że luka nie ogranicza się do fałszywych kont botów. Znalazł co najmniej trzy inne sposoby na obejście zabezpieczeń Claude Code. Każdy z nich wykorzystuje inną słabość w domyślnej konfiguracji lub architekturze narzędzia.
Otwarte drzwi: ustawienie wildcard dla nieuprawnionych użytkowników
Anthropic w swojej dokumentacji udostępnił przykładowy workflow do obsługi zgłoszeń, który zawierał opcję allowed_non_write_users: "*". To ustawienie pozwala każdemu, niezależnie od uprawnień, uruchomić akcję. Dokumentacja ostrzegała, że to ryzykowne, ale wiele repozytoriów skopiowało przykład i odziedziczyło konfigurację. Co gorsza, Claude domyślnie publikował podsumowania zadań w publicznie widocznym panelu podsumowania workflow, tworząc gotowy kanał do eksfiltracji danych.
Wyścig z czasem: podmiana issue w trakcie przetwarzania
Trzeci wektor ataku wykorzystuje lukę typu race condition. Jeśli atakujący edytuje istniejący issue zaufanego użytkownika tuż po uruchomieniu workflow, ale zanim Claude zdąży go odczytać, szkodliwe polecenie zostaje przetworzone jako zaufana treść. To sprawia, że nawet repozytoria z restrykcyjnymi regułami dostępu mogą paść ofiarą ataku.
Realne zagrożenie i szerszy kontekst bezpieczeństwa AI
Opisana luka nie jest teorią. W lutym 2024 roku podobny atak z wykorzystaniem wstrzyknięcia promptu w workflow triage Cline’a pozwolił przestępcom ukraść token npm i opublikować nieautoryzowaną wersję pakietu [email protected]. Złośliwa wersja wymuszała instalację oddzielnego agenta AI o nazwie OpenClaw na około 4 tysiącach systemów deweloperskich w ciągu ośmiu godzin, zanim została usunięta. Następnie automatyczny bot HackerBot-Claw przeszukiwał konfiguracje GitHub Actions w projektach Microsoftu, Datadog i CNCF, próbując wstrzyknąć prompt do Claude’a za pomocą zatrutego pliku konfiguracyjnego – tym razem Claude wykrył próbę i odmówił wykonania.
RyotaK zgłosił do Anthropic około 50 różnych sposobów na obejście systemu uprawnień Claude Code i wykonanie dowolnych poleceń. To wpisuje się w szerszą falę ataków na łańcuch dostaw, celujących w narzędzia developerskie wspierane przez AI – od zatrutych rozszerzeń VS Code, które naruszyły repozytoria GitHub, po złośliwe pakiety npm zaprojektowane do kradzieży danych uwierzytelniających z asystentów kodowania.
Anthropic zareagował szybko – załatał główną lukę w ciągu czterech dni od zgłoszenia, a przez wiosnę wprowadzał dodatkowe wzmocnienia. Poprawki są dostępne w wersji claude-code-action v1.0.94. Firma oceniła podatność na 7.8 w skali CVSS v4.0 i wypłaciła nagrodę w wysokości 4800 dolarów.
Jak zabezpieczyć swoje repozytorium – praktyczne kroki
Ryzyko jest realne, ale ochrona przed nim nie wymaga skomplikowanych działań. Eksperci wskazują kilka kluczowych kroków, które należy podjąć natychmiast:
- Aktualizuj Claude Code Action – przejdź na wersję 1.0.94 lub nowszą, która zawiera poprawki dla wszystkich zgłoszonych luk
- Przejrzyj konfigurację workflow – sprawdź, czy w plikach YAML nie ma ustawienia
allowed_non_write_users: "*"i usuń je, jeśli występuje - Ogranicz dostęp botów – nie ufaj automatycznie żadnemu aktorowi z nazwą kończącą się na
[bot]; wdroż dodatkową weryfikację - Usuń zbędne sekrety – przejrzyj zmienne środowiskowe dostępne dla akcji i usuń wszystkie, które nie są niezbędne do jej działania
- Ogranicz uprawnienia – Claude Code Action nie potrzebuje domyślnie pełnego dostępu do repozytorium; skonfiguruj minimalny zestaw uprawnień
Głębszy problem pozostaje jednak nierozwiązany. Wstrzyknięcie promptu to wciąż otwarte wyzwanie w bezpieczeństwie systemów AI. Agent z realnymi narzędziami i tokenami może zostać popchnięty tak daleko, jak pozwalają mu przyznane uprawnienia – a większość organizacji domyślnie udziela znacznie szerszego dostępu, niż są w stanie obronić. Dopóki modele nie nauczą się odróżniać danych od instrukcji, każdy workflow z AI będzie potencjalnym wektorem ataku.
Claude Code to jedno z wielu narzędzi, które wkraczają w obszar automatyzacji deweloperskiej. Luka odkryta przez RyotaKa pokazuje, że tempo wdrażania AI w codzienne procesy programistyczne wyprzedza dojrzałość mechanizmów bezpieczeństwa. Dla zespołów korzystających z tych rozwiązań oznacza to jedno: audyt konfiguracji i stała czujność to nie opcja, ale konieczność.

