Atak na łańcuch dostaw TanStack: czym jest Mini Shai-Hulud i jak się chronić
Kampania TeamPCP skompromitowała setki pakietów npm i PyPI, atakując m.in. OpenAI. Wyjaśniamy, jak działa to zagrożenie i co możesz zrobić, by zabezpieczyć swoje projekty.
Jak działał atak Mini Shai-Hulud?
Zgodnie z raportami badaczy z SANS ISC oraz firm Wiz i StepSecurity, mechanizm ataku opierał się na wykorzystaniu legalnego potoku CI/CD ofiary. Przestępcy nie przejęli haseł ani tokenów developera w tradycyjny sposób. Zamiast tego włamali się do procesu budowania oprogramowania, co pozwoliło im publikować zmodyfikowane wersje pakietów bezpośrednio przez oficjalne repozytorium.
W przypadku TanStack atakujący nadużyli słabości w konfiguracji GitHub Actions. Wstrzyknęli złośliwy kod, który podczas kompilacji wypisywał do konsoli tokeny dostępowe, a następnie wykorzystywał je do publikowania nowych, zainfekowanych wersji pakietów. Co kluczowe, złośliwe paczki posiadały prawidłowe poświadczenia SLSA Build Level 3, czyli najwyższy poziom gwarancji pochodzenia artefaktu. To pierwszy udokumentowany przypadek, gdy złośliwe oprogramowanie w npm miało ważny, wygenerowany przez legalny pipeline certyfikat pochodzenia.
Jak zauważyli analitycy, „posiadanie poświadczenia SLSA nie oznacza, że pakiet jest bezpieczny – oznacza tylko, że został zbudowany w oficjalnym potoku”. Tradycyjne mechanizmy weryfikacji oparte na zaufaniu do pipeline’u nie wykrywają tej klasy zagrożeń.
Kto został dotknięty i jakie były skutki?
Atak dotknął przede wszystkim projekty open source oraz firmy korzystające z ich kodu. W ciągu około sześciu minut skompromitowano 42 pakiety @tanstack, łącznie około 170 pakietów w npm i PyPI, o łącznej liczbie pobrań przekraczającej 500 milionów. Wśród ofiar znalazły się m.in. Mistral AI, UiPath, OpenSearch oraz Guardrails AI.
OpenAI potwierdziło, że zagrożenie dotarło do dwóch urządzeń pracowników, skąd wykradziono ograniczone poświadczenia dostępu do wewnętrznych repozytoriów kodu. Firma podkreśliła, że nie doszło do naruszenia danych klientów, systemów produkcyjnych ani własności intelektualnej. W ramach prewencji zrotowano certyfikaty podpisywania kodu dla aplikacji na macOS, Windows, iOS i Android. Użytkownicy aplikacji desktopowej OpenAI na macOS muszą zaktualizować oprogramowanie przed 12 czerwca 2026, aby program nadal działał po rotacji certyfikatów.
Co istotne, malware wykazywał także działanie sabotażowe. Jak wynika z analizy, na systemach z polskim ustawieniem regionalnym nie aktywowano destrukcyjnego ładunku, ale na maszynach z lokalizacją izraelską lub irańską istniało prawdopodobieństwo (1 do 6) wykonania rekurencyjnego czyszczenia dysku.
Co możesz zrobić, by się chronić?
Kampania Mini Shai-Hulud unaocznia, że zabezpieczenie łańcucha dostaw wymaga wielowarstwowego podejścia. Oto konkretne zalecenia dla zespołów developerskich i administratorów:
- Pinuj wersje i weryfikuj sumy kontrolne. Zamiast pobierać najnowszą wersję pakietu, używaj dokładnie określonych wersji w plikach lockfile (np. package-lock.json, poetry.lock). Regularnie porównuj hasze z znanym, bezpiecznym wzorcem.
- Nie ufaj wyłącznie podpisom SLSA lub podpisom kodu. Jak pokazuje ten incydent, złośliwy kod może zostać opublikowany z prawidłowym świadectwem pochodzenia. Weryfikuj dodatkowo źródło i historię zmian.
- Monitoruj nietypowe aktywności w potoku CI/CD. Zwracaj uwagę na niespodziewane komendy cp, mv, czy zmiany w plikach konfiguracyjnych narzędzi AI (np. .claude/settings.json). W ataku wykorzystano właśnie podmianę plików konfiguracyjnych agentów kodujących.
- Regularnie audytuj uprawnienia i tokeny. Ogranicz zakres tokenów GitHub i npm do minimum niezbędnego do działania. Rozważ stosowanie tymczasowych, jednorazowych tokenów.
- Szkoł zespół w zakresie bezpieczeństwa łańcucha dostaw. Deweloperzy powinni być świadomi, że nawet zatwierdzenie przez narzędzie AI prostej operacji kopiowania pliku może prowadzić do wstrzyknięcia złośliwego kodu.
Co dalej?
Badacze bezpieczeństwa spodziewają się, że ataki na łańcuch dostaw z wykorzystaniem agentów kodujących i zaufanych pipeline’ów będą przybierać na sile. Grupa TeamPCP, mimo prób zablokowania przez konkurencyjną kampanię PCPJack, wciąż pozostaje aktywna. Dla firm i zespołów developerskich kluczowe jest przyjęcie zasady „never trust, always verify” również w odniesieniu do własnych procesów automatyzacji. Śledzenie komunikatów takich organizacji jak CERT Polska czy CISA może pomóc w szybkim reagowaniu na nowe zagrożenia.


