Wybierz Stronę

Nie koniec kampanii, tylko nowy cel. Co Shai-Hulud i TeamPCP mówią o tym, że narzędzia AI do kodowania stały się nową powierzchnią ataku w łańcuchu dostaw

kwi 26, 2026 | Cyberflux

Pisaliśmy o kampanii TeamPCP z 22 kwietnia — skompromitowany skaner bezpieczeństwa KICS jako punkt wejścia, Bitwarden CLI jako ofiara domino, robak propagujący się przez skradzione tokeny GitHub. Teza była: narzędzia DevSecOps mają z założenia dostęp do wszystkiego co chronią i właśnie dlatego stały się wartościowym celem.

GitGuardian opublikował analizę, która dodaje do tej historii nową warstwę. Ładunek złośliwego oprogramowania rozprzestrzeniany przez TeamPCP nie tylko kradnie tokeny GitHub, klucze chmurowe i dane SSH. Szuka konkretnie sześciu narzędzi AI do kodowania zainstalowanych na maszynie ofiary — i wstrzykuje do nich złośliwy kod.

Narzędzia na liście: Claude Code, Gemini CLI, Codex CLI, Kiro CLI, Aider i OpenCode.

Shai-Hulud: trzecie nadejście

Ładunek złośliwego oprogramowania w zatrутym pakiecie @bitwarden/cli@2026.4.0 zawiera string "Shai-Hulud: The Third Coming" — wprost nazwalony jako trzecia fala kampanii, której pierwsze dwie odsłony pojawiły się w rejestrze npm w 2025 roku. Nazwy losowo generowanych repozytoriów używanych do eksfiltracji danych są zbudowane ze słów z uniwersum Diuny: sardaukarfremenatreidessandworm.

To nie jest nowy aktor. To jest powracająca kampania z rozbudowaną historią. Shai-Hulud po raz pierwszy pojawił się w rejestrze npm we wrześniu 2025 roku, infekując ponad 180 pakietów przez skradzione dane uwierzytelniające deweloperów. W drugiej fali w listopadzie 2025 zaraziła ponad 640 pakietów. Trzecia fala — opisywana teraz — jest bardziej ukierunkowana: zamiast masowego infekowania rejestru npm, precyzyjny atak przez skompromitowaną infrastrukturę zaufanego vendora narzędzi bezpieczeństwa.

Związek między TeamPCP a Shai-Hulud nie jest w pełni potwierdzony przez badaczy — nazwy kampanii mogą wskazywać na tę samą grupę lub na celowe nawiązanie do wcześniejszej kampanii przez inny podmiot. To co jest potwierdzone: ta sama infrastruktura eksfiltracji (audit.checkmarx[.]cx/v1/telemetry), ta sama procedura zaciemniania kodu, ten sam wzorzec propagacji przez GitHub.

Mechanizm zatrucia narzędzi AI

Zatrucie narzędzi AI do kodowania jest technicznie eleganckie i warte szczegółowego opisania.

Po uruchomieniu złośliwego ładunku, malware skanuje system w poszukiwaniu śladów instalacji Claude Code, Gemini CLI, Codex CLI, Kiro CLI, Aidera i OpenCode. Jeśli którekolwiek z nich zostanie znalezione — malware wstrzykuje 3500-bajtowy blok kodu (heredoc) do plików ~/.bashrc i ~/.zshrc. To są pliki startowe terminala uruchamiane automatycznie przy każdym otwarciu powłoki.

Wstrzyknięty kod zmienia konfigurację środowiskową narzędzi AI w sposób niewidoczny dla użytkownika. Narzędzia nadal działają. Podpowiedzi nadal wyglądają jak zwykłe podpowiedzi. Ale w tle — w zależności od konfiguracji — mogą sugerować niebezpieczny kod, eksfiltrować kontekst kodu do zewnętrznego serwera lub wykonywać dodatkowe polecenia przy każdym wywołaniu.

Moshe Siman Tov Bustan z OX Security ujmuje skalę problemu wprost: "Dane użytkowników są publicznie eksfiltrowane do GitHuba, często niewykryte bo narzędzia bezpieczeństwa zazwyczaj nie oznaczają danych wysyłanych tam jako podejrzanych. To sprawia że ryzyko jest znacznie poważniejsze: każdy przeszukujący GitHub może potencjalnie znaleźć i uzyskać dostęp do tych danych uwierzytelniających. W tym momencie wrażliwe dane nie są już w rękach jednego aktora zagrożenia — są dostępne dla każdego."

Dependabot jako nieświadomy wykonawca

Udokumentowany przypadek ofiary pokazuje konkretny mechanizm jak kampania się rozprzestrzenia bez żadnej decyzji dewelopera.

Jeden potwierdzony przypadek zaczął się od zatrутego obrazu Docker KICS z 22 kwietnia. Dependabot — zautomatyzowany bot GitHub do aktualizacji zależności — automatycznie pobrał zatrутy tag checkmarx/kics:latest podczas rutynowej aktualizacji zależności. Ładunek wykonał się w środowisku CI z pełnym dostępem do sekretów repozytorium. Skradzione tokeny GitHub zostały użyte do wstrzyknięcia złośliwego przepływu pracy GitHub Actions do repozytoriów, do których ofiara miała dostęp zapisu.

Dependabot jest mechanizmem zaprojektowanym żeby poprawiać bezpieczeństwo przez automatyczne aktualizowanie zależności do bezpiecznych wersji. W tej kampanii stał się mechanizmem automatycznego pobierania złośliwego kodu bez żadnej interakcji człowieka.

Pisaliśmy o tym jak Comment and Control exploituje automatyczne przepływy pracy GitHub Actions — agenty AI wykonujące polecenia z tytułów zgłoszeń bez świadomości operatora. Shai-Hulud przez Dependabot to ta sama klasa problemu na poziomie niżej: automatyzacja aktualizacji zależności wykonująca złośliwy kod bez świadomości dewelopera. W obu przypadkach mechanizm zaprojektowany do pomocy staje się mechanizmem ataku.

Trzy ekosystemy, czterdzieści osiem godzin

GitGuardian dokumentuje szerszy kontekst: między 21 a 23 kwietnia 2026 roku trzy osobne ataki uderzyły jednocześnie w npm, PyPI i Docker Hub.

Pierwszy to opisywana przez nas kampania KICS i Bitwarden przez Docker Hub. Drugi to trzy kolejne wydania biblioteki xinference w PyPI z ładunkiem kradnącym dane uwierzytelniające. Trzeci to kampania przez npm z piętnastoma typosquattowanymi pakietami podszywającymi się pod popularne narzędzia deweloperskie i związane z AI.

Trzy ekosystemy, trzy wektory, jeden cel: tokeny i klucze z środowisk deweloperskich i potoków CI/CD. Sekretarz ds. bezpieczeństwa Team Cymru: "TeamPCP metodycznie nadużywa zaufanych zasobów w naszych ekosystemach technologicznych."

Co łączy kampanię z szerszym obrazem

Przez ostatni miesiąc cyberflux opisywał kolejne warstwy tego samego wzorca.

Kampania KICS i Bitwarden: narzędzia DevSecOps jako wektor ataku przez zaufany kanał dystrybucji.

Comment and Control: narzędzia AI do kodowania podatne na wstrzyknięcie przez tytuły zgłoszeń i komentarze.

Architektoniczny błąd STDIO w MCP: pliki konfiguracyjne MCP jako wektor wstrzyknięcia poleceń.

Shai-Hulud przez Dependabot łączy te wątki: narzędzie DevSecOps (KICS) jako punkt wejścia, automatyzacja aktualizacji (Dependabot) jako mechanizm propagacji, narzędzia AI do kodowania (Claude Code, Gemini CLI, Codex CLI) jako ostateczny cel zatrucia.

Deweloper który ma zainstalowany Claude Code na maszynie z zainfekowanym Dependabotem, który pulled zatrутego KICS — może używać zatrutego asystenta AI do pisania kodu nie wiedząc że każde jego wywołanie jest modyfikowane przez wstrzyknięty kod startowy terminala. Narzędzie które miało pomagać pisać bezpieczny kod pomaga pisać kod sterowany przez atakujących.

Wskaźniki kompromitacji i kroki zaradcze

Dla deweloperów którzy mogli być dotknięci: sprawdzić pliki ~/.bashrc i ~/.zshrc pod kątem nieznanych bloków kodu — szczególnie długich heredoców (3500 bajtów) wstrzykniętych na końcu pliku. Obecność katalogów z nazwami nawiązującymi do Diuny (sardaukarfremenatreides) w nieoczekiwanych lokalizacjach to dodatkowy wskaźnik.

Jeśli na zainfekowanej maszynie były zainstalowane Claude Code, Gemini CLI, Codex CLI, Kiro CLI, Aider lub OpenCode: usunąć pliki konfiguracyjne tych narzędzi i przeinstalować je na czystej maszynie po czyszczeniu systemu. Tokeny API wbudowane w konfiguracje tych narzędzi należy uznać za skompromitowane i rotować.

Dla repozytoriów GitHub połączonych z zainfekowanymi maszynami: przejrzeć historię przepływów pracy pod kątem nieautoryzowanych zmian, sprawdzić listę repozytoriów na koncie pod kątem nieznanych nowych repozytoriów w formacie <słowo>-<słowo>-<3 cyfry>.

Podsumowanie

Shai-Hulud przez Dependabot to domknięcie pętli opisywanej przez cyberflux przez ostatni miesiąc: łańcuch dostaw oprogramowania jako wektor ataku dotarł do narzędzi AI do kodowania — tych samych narzędzi, które mają dostęp do całego kontekstu kodu, tokenów API, konfiguracji MCP i sekretów produkcyjnych dewelopera.

Deweloper używający Claude Code, Gemini CLI czy Codex CLI zakłada że narzędzie wykonuje jego polecenia. Po zatruciu przez Shai-Hulud — to założenie przestaje być prawdziwe.

Źródła

GitGuardian — analiza powiązania Bitwarden CLI z kampanią Checkmarx i mechanizmem Dependabot: https://blog.gitguardian.com/bitwarden-cli-gitguardian-views-on-helloworm00/

Hackread — szczegóły mechanizmu zatrucia narzędzi AI i lista celów: https://hackread.com/teampcp-bitwarden-cli-dependabot-shai-hulud-malware/

JFrog Security Research — analiza techniczna złośliwego pakietu @bitwarden/cli@2026.4.0https://research.jfrog.com/post/bitwarden-cli-hijack/

The Hacker News — pełna historia kompromitacji Bitwarden CLI i stanowisko firmy: https://thehackernews.com/2026/04/bitwarden-cli-compromised-in-ongoing.html

GitGuardian — raport trzech jednoczesnych ataków na npm, PyPI i Docker Hub w 48 godzinach: https://blog.gitguardian.com/three-supply-chain-campaigns-hit-npm-pypi-and-docker-hub-in-48-hours/