
Co znajdziesz w tym artykule?
Wprowadzenie do problemu / definicja
Ekosystem npm pozostaje jednym z najczęściej wykorzystywanych wektorów ataków na łańcuch dostaw oprogramowania. Opisana kampania dotyczy złośliwego pakietu „mouse5212-super-formatter”, który podszywał się pod narzędzie pomocnicze, a po instalacji uruchamiał mechanizm kradzieży danych z lokalnego środowiska użytkownika.
Szczególnie niepokojące jest ukierunkowanie na katalog /mnt/user-data, wiązany z obsługą plików wejściowych i wynikowych w środowisku Claude AI. To pokazuje, że napastnicy coraz częściej interesują się nie tylko kodem źródłowym, ale także danymi przetwarzanymi przez narzędzia AI wspierające pracę deweloperów.
W skrócie
- Złośliwy pakiet npm „mouse5212-super-formatter” uruchamiał kod podczas fazy
postinstall. - Malware przeszukiwał katalog
/mnt/user-datai wykradał znajdujące się tam pliki. - Do eksfiltracji używano GitHub, korzystając z tokenu ofiary lub zapasowego tokenu osadzonego w kodzie.
- Skradzione dane trafiały do repozytorium kontrolowanego przez operatora kampanii.
- Badacze określili tę operację mianem Malware-Slop.
Kontekst / historia
Ataki wykorzystujące złośliwe pakiety npm nie są nowością, jednak ten przypadek wpisuje się w nowy trend: przejmowanie danych z narzędzi AI i środowisk deweloperskich, w których sztuczna inteligencja przetwarza pliki robocze, wyniki generowania oraz artefakty tymczasowe. W praktyce oznacza to rozszerzenie pola ataku poza klasyczne zależności programistyczne.
Pakiet był przedstawiany jako narzędzie do „synchronizacji wdrożenia archiwów”, co miało nadać mu pozory legalności. Według ustaleń badaczy konto GitHub powiązane z operacją utworzono 26 maja 2026 roku, na krótko przed publikacją pierwszej złośliwej wersji. Mimo relatywnie krótkiej obecności w rejestrze npm paczka odnotowała setki pobrań, choć liczba faktycznych instalacji pozostaje nieznana.
Zwraca uwagę również niski poziom higieny operacyjnej sprawców. W kodzie pozostawiono szczegóły konta GitHub, w tym prywatny token, co może sugerować pośpieszne przygotowanie narzędzia i ograniczony poziom dojrzałości całej operacji.
Analiza techniczna
Technicznie kampania była stosunkowo prosta, ale skuteczna. Kluczowym elementem był skrypt uruchamiany w fazie postinstall, a więc automatycznie po instalacji pakietu. Taki moment wykonania jest szczególnie niebezpieczny, ponieważ użytkownik często nie zauważa dodatkowych działań, a proces CI/CD może potraktować je jako standardową część instalacji zależności.
Po uruchomieniu malware realizował kilka kroków operacyjnych:
- sprawdzał dostępność tokenu GitHub w zmiennych środowiskowych ofiary,
- w razie potrzeby korzystał z tokenu osadzonego w samym pakiecie,
- weryfikował istnienie docelowego repozytorium GitHub,
- automatycznie tworzył repozytorium, jeśli nie było dostępne,
- rekursywnie przeszukiwał wskazaną lokalizację i przesyłał pliki do zdalnego repozytorium.
Najważniejszym celem był katalog /mnt/user-data, wskazywany jako przestrzeń używana przez Claude do obsługi uploadów i wyników pracy. To oznacza, że zagrożone mogły być nie tylko pliki użytkownika, ale także wygenerowane artefakty, raporty, dane robocze oraz materiały tymczasowo składowane przez środowisko AI.
Aby ograniczyć wykrywalność, złośliwy kod tworzył fałszywy log „połączeń sieciowych”, sprawiający wrażenie czynności diagnostycznej. W praktyce pełnił on funkcję maskującą, ukrywając rzeczywisty cel działania, czyli nieautoryzowaną kolekcję i eksport danych. Dodatkowo pliki porządkowano w losowo nazwanych katalogach, co ułatwiało operatorowi rozdzielanie danych między ofiary i sesje.
Z perspektywy bezpieczeństwa łańcucha dostaw szczególnie istotne są trzy elementy: wykorzystanie hooka instalacyjnego, użycie legalnej platformy deweloperskiej jako kanału eksfiltracji oraz celowanie w środowisko AI, które coraz częściej ma dostęp do dokumentacji, kodu, sekretów i danych projektowych.
Konsekwencje / ryzyko
Ryzyko związane z tą kampanią wykracza poza wyciek pojedynczych plików. Jeśli złośliwa paczka została zainstalowana w środowisku deweloperskim lub sesji narzędzia AI, skutkiem mogło być ujawnienie szeregu wrażliwych zasobów organizacji.
- kodu źródłowego,
- dokumentacji technicznej,
- danych klientów,
- raportów i artefaktów wygenerowanych przez AI,
- plików konfiguracyjnych,
- sekretów dostępnych lokalnie lub pośrednio z kontekstu pracy.
Dla organizacji wykorzystujących AI do analizy kodu i przetwarzania danych wewnętrznych oznacza to dodatkowy problem koncentracji informacji w jednym miejscu. Jeśli agent AI operuje na katalogach roboczych i plikach użytkownika, przejęcie dostępu do takiej przestrzeni może dostarczyć napastnikowi znacznie więcej danych niż klasyczna infekcja pojedynczej aplikacji.
Szczególnie niebezpieczne jest także użycie GitHub jako kanału transferu. Taki ruch może wyglądać jak normalna aktywność deweloperska i nie wywoływać alertów opartych wyłącznie na reputacji domeny lub popularności usługi. Wykorzystanie prawidłowych tokenów dodatkowo zwiększa wiarygodność operacji z perspektywy systemów monitorujących.
Rekomendacje
Organizacje powinny potraktować ten incydent jako istotne ostrzeżenie dotyczące bezpieczeństwa paczek JavaScript oraz środowisk AI wspierających rozwój oprogramowania. Obrona nie może ograniczać się wyłącznie do wykrywania znanych podatności CVE, lecz powinna obejmować także analizę zachowań pakietów i ochronę danych przetwarzanych przez narzędzia AI.
- blokować lub ściśle kontrolować wykonywanie skryptów
postinstall,preinstalliprepare, - stosować allowlistę zaufanych pakietów oraz wewnętrzne proxy rejestru npm,
- wdrożyć skanowanie zależności pod kątem złośliwych zachowań,
- monitorować nietypowe operacje GitHub API z hostów deweloperskich i runnerów CI,
- ograniczać zakres uprawnień tokenów do minimum,
- rotować tokeny i sekrety w razie podejrzenia instalacji podejrzanej paczki,
- segmentować środowiska, w których narzędzia AI mają dostęp do plików użytkownika,
- traktować katalogi robocze AI jako strefę danych wrażliwych i obejmować je monitoringiem DLP oraz EDR,
- prowadzić inspekcję plików
package.jsoni skryptów instalacyjnych przed dopuszczeniem nowych zależności.
W praktyce warto również wymuszać instalacje z parametrami ograniczającymi uruchamianie skryptów tam, gdzie to możliwe, analizować wychodzący ruch HTTPS do popularnych serwisów deweloperskich pod kątem anomalii oraz uruchamiać niezweryfikowane zależności w środowiskach sandbox. Z perspektywy SOC i DFIR ważnymi wskaźnikami kompromitacji mogą być niespodziewane wywołania GitHub API po instalacji pakietów, tworzenie nowych repozytoriów bez uzasadnienia biznesowego oraz odwołania do lokalizacji używanych przez narzędzia AI.
Podsumowanie
Przypadek „mouse5212-super-formatter” pokazuje, że ataki na łańcuch dostaw oprogramowania ewoluują w stronę środowisk zintegrowanych z AI. Nie chodzi już wyłącznie o wykonanie złośliwego kodu po instalacji paczki, ale o przejęcie dostępu do kontekstu pracy użytkownika, danych wejściowych i wyników generowanych przez systemy wspomagające programowanie.
Dla organizacji oznacza to konieczność rozszerzenia modelu bezpieczeństwa o kontrolę zależności, monitoring ruchu do usług deweloperskich, ochronę sekretów oraz zabezpieczenie przestrzeni roboczych wykorzystywanych przez narzędzia AI. To właśnie tam coraz częściej kumulują się najbardziej wartościowe informacje.
Źródła
- Malicious npm Package Stole Files From Claude AI User Directory via GitHub — https://thehackernews.com/2026/05/malicious-npm-package-stole-files-from.html
- OX Security Blog — https://www.ox.security/blog/
- User identity and local data – Claude.ai Documentation — https://claude.com/docs/cowork/3p/data-storage
- Explore the .claude directory – Claude Code Docs — https://code.claude.com/docs/en/claude-directory