Atak na łańcuch dostaw firmy Axios podważa zaufanie do npm

| 31 marca, 2026
Logo klienta HTTP Axios, które składa się wyłącznie ze słowa „AXIOS” napisanego na fioletowo

Naukowcy odkryli, że zainfekowane wersje oprogramowania Axios instalowały trojana umożliwiającego zdalny dostęp.

Axios to oparty na obietnicach klient HTTP dla środowiska Node.js, czyli narzędzie pomocnicze, z którego programiści korzystają w tle, aby umożliwić aplikacjom komunikację z internetem. Na przykład Axios sprawia, że operacje takie jak „pobierz moje wiadomości z serwera” czy „wyślij ten formularz do strony internetowej” stają się dla programistów łatwiejsze i bardziej niezawodne, a także oszczędza im konieczności samodzielnego pisania dużej ilości niskopoziomowego kodu sieciowego.

Ponieważ działa zarówno w przeglądarce, jak i na serwerach (Node.js), wiele współczesnych projektów opartych na JavaScript wykorzystuje go jako standardowy element składowy. Nawet jeśli sam nigdy nie zainstalujesz Axiosa, możesz natknąć się na niego pośrednio, gdy:

  • Korzystaj z aplikacji internetowych stworzonych przy użyciu frameworków takich jak React, Vue lub Angular.
  • Korzystaj z aplikacji mobilnych lub komputerowych stworzonych przy użyciu technologii internetowych, takich jak Electron, React Native i inne.
  • Zapoznaj się z mniejszymi narzędziami typu Software-as-a-Service (SaaS), panelami administracyjnymi lub usługami hostowanymi we własnym zakresie, stworzonymi przez programistów, którzy postawili na Axios.

Można to porównać do instalacji wodociągowej w domu. Zazwyczaj nie zwracasz uwagi na rury, ale to one doprowadzają wodę tam, gdzie odkręcasz kran. I nie musisz wiedzieć, gdzie się znajdują, dopóki nie pojawi się wyciek.

Co się stało?

Wykorzystując skradzione dane logowania głównego opiekuna projektu Axios, osoba atakująca opublikowała złośliwe pakiety w serwisie npm: axios@1.14.1 oraz axios@0.30.4. Złośliwe wersje wprowadzają nową zależność, plain-crypto-js@4.2.1, który nie jest nigdzie importowany w kodzie źródłowym Axiosa. 

Łącznie te dwa pakiety osiągają nawet 100 milionów pobrań tygodniowo w serwisie npm, co oznacza, że mają ogromny wpływ na aplikacje internetowe, usługi i procesy.

Należy pamiętać, że wersja Axios, której dotyczy ta luka, nie pojawia się w oficjalnych tagach projektu na GitHubie. Oznacza to, że problem dotyczy programistów i środowisk, w których uruchomiono polecenie `npm install`, które doprowadziło do:

  • axios@1.14.1 lub axios@0.30.4lub
  • zależność plain-crypto-js@4.2.1.

Każdy proces, w ramach którego zainstalowano jedną z tych wersji z włączoną obsługą skryptów, mógł narazić wszystkie wstrzyknięte dane poufne (klucze chmurowe, klucze wdrożeniowe repozytorium, tokeny npm itp.) na atak ze strony interaktywnego atakującego, ponieważ skrypt postinstall (node setup.js), uruchamiany automatycznie podczas instalacji npm, pobierał zaszyfrowany dropper, który pobiera ładunek RAT dostosowany do konkretnej platformy – macOS, Windows lub Linux.

Jeśli jesteś programistą wdrażającym Axios, potraktuj każdy komputer, na którym zainstalowano wadliwe wersje, jako potencjalnie całkowicie przejęty i wymień klucze dostępu. Atakujący mógł uzyskać dostęp do repozytorium, kluczy podpisujących, kluczy API lub innych poufnych danych, które mogą posłużyć do wprowadzenia tylnych drzwi do przyszłych wydań lub do ataku na Twój backend i użytkowników.

Użytkownicy aplikacji stworzonych przy użyciu Axios nie mają żadnych bezpośrednich powodów do obaw. Jeśli po prostu uruchamiasz swoją aplikację w przeglądarce, nie uruchamiasz tego RAT bezpośrednio za pośrednictwem Axios. Droga zakażenia przebiega na etapie instalacji lub kompilacji, a nie podczas działania aplikacji.

Wskaźniki kompromisu (IOC)

Jak zauważyli naukowcy, ten dropper złośliwego oprogramowania usuwa po sobie wszelkie ślady:

„Każda kontrola pliku node_modules/plain-crypto-js/package.json przeprowadzona po infekcji wykaże, że manifest jest całkowicie czysty. Nie ma tam skryptu postinstall, pliku setup.js ani żadnych śladów wskazujących, że kiedykolwiek zainstalowano jakiekolwiek złośliwe oprogramowanie. Uruchomienie polecenia npm audit lub ręczne sprawdzenie katalogu zainstalowanego pakietu nie ujawni faktu naruszenia bezpieczeństwa”.

Warto więc zwrócić uwagę na następujące wskaźniki IOC:

Domena: sfrclak[.]com

Adres IP: 142.11.206.73

(oba zablokowane przez Malwarebytes )

Pliki:

  • macOS: /Library/Caches/com.apple.act.mond
  • Linux: /tmp/ld.py 
  • Windows: %PROGRAMDATA%\wt oraz %TEMP%\6202033.vbs/.ps1, które istnieją tylko przez krótki czas podczas wykonywania

Złośliwe pakiety npm:

Suma kontrolna SHA-256 pliku axios@1.14.1: 2553649f2322049666871cea80a5d0d6adc700ca

axios@0.30.4, suma kontrolna SHA-256: d6f3f62fd3b9f5432f5782b62d8cfd5247d5ee71

Suma kontrolna SHA-256 pliku plain-crypto-js@4.2.1: 07d889e2dadce6f3910dcbc253317d28ca61c766


Nie tylko informujemy o zagrożeniach - my je usuwamy

Zagrożenia cyberbezpieczeństwa nigdy nie powinny wykraczać poza nagłówek. Chroń swoje urządzenia przed zagrożeniami, pobierając Malwarebytes już dziś.

O autorze

Pieter Arntz

Badacz złośliwego oprogramowania

Przez 12 lat z rzędu był Microsoft MVP w dziedzinie bezpieczeństwa konsumentów. Mówi w czterech językach. Pachnie bogatym mahoniem i oprawionymi w skórę książkami.