
Axios kompromitován: supply chain útok šířil malware na Windows, macOS i Linux
Populární JavaScript knihovna Axios se stala cílem sofistikovaného supply chain útoku. Kompromitované verze balíčku na npm automaticky spouštěly malware napříč všemi hlavními operačními systémy.
Kompromitace přes npm účet maintainera
Axios patří mezi nejpoužívanější HTTP klienty v JavaScript ekosystému, s desítkami milionů až přibližně 100 miliony stažení týdně.
Na přelomu 30. a 31. března 2026 došlo ke kompromitaci npm účtu jednoho z hlavních maintainerů. Útočník následně publikoval dvě škodlivé verze balíčku:
axios@1.14.1axios@0.30.4
Tyto verze byly dostupné pouze několik hodin, než byly z registru odstraněny.
Útok přes závislost, ne přes samotný Axios
Zásadní je, že samotný zdrojový kód Axiosu nebyl podle analýz přímo škodlivý.
Útočníci místo toho přidali novou závislost:
plain-crypto-js@4.2.1
Tato knihovna nebyla v projektu nijak využívána. Jejím jediným účelem bylo spustit tzv. postinstall skript při instalaci balíčku.
Při běžném příkazu npm install tak došlo k automatickému spuštění dropperu, který následně stáhl a spustil malware.
Co malware dělal
Nasazený malware byl typu RAT (Remote Access Trojan), tedy nástroj pro vzdálené ovládání systému.
Po spuštění provedl:
- průzkum systému (soubory, procesy, prostředí)
- komunikaci s řídicím serverem (C2)
- pravidelné dotazování na instrukce (cca každých 60 sekund)
Útočník tak mohl na napadeném zařízení spouštět příkazy, procházet soubory nebo nasazovat další škodlivý kód.
Multiplatformní útok
Útok byl navržen jako plně cross-platformní.
Na macOS docházelo ke stažení binárního souboru do /Library/Caches/com.apple.act.mond a jeho spuštění na pozadí. Varianta byla napsaná v C++ a pravidelně komunikovala s C2 serverem.
Ve Windows prostředí malware využíval PowerShell, maskoval se jako legitimní systémový nástroj a vytvářel mechanismus perzistence, který zajistil jeho spuštění po přihlášení.
Na Linuxu byl nasazen Python skript spuštěný na pozadí, bez perzistence, což naznačuje spíše krátkodobé využití.
Všechny varianty sdílely stejný komunikační protokol a sadu příkazů.
Obcházení detekce
Útok byl navržen tak, aby minimalizoval šanci odhalení.
Škodlivý kód nebyl součástí Axiosu, ale závislosti, která se automaticky spustila při instalaci. Nebyla navíc nikde importována, takže nepůsobila podezřele při běžné kontrole kódu.
Po spuštění malware odstranil instalační skript a přepsal konfigurační soubory balíčku tak, aby vypadal jako legitimní.
To výrazně ztížilo forenzní analýzu.
Připravený a cílený útok
Analýza ukazuje, že nešlo o náhodný incident.
Škodlivá závislost byla publikována předem, payloady existovaly pro všechny hlavní platformy a kompromitované verze Axiosu byly nasazeny v krátkém časovém okně během několika hodin.
Útočník pravděpodobně získal dlouhodobý přístupový token k npm účtu, což mu umožnilo publikovat balíčky mimo standardní CI/CD proces.
Možná atribuce
Podle analýzy Google Threat Intelligence Group vykazuje útok podobnosti s malwarem WAVESHAPER, který byl dříve spojován se severokorejskou skupinou UNC1069.
Tato atribuce vychází z technických podobností a není oficiálně potvrzená.
Doporučení
Organizace by měly:
- ověřit, zda nebyly použity verze
1.14.1nebo0.30.4 - odstranit balíček
plain-crypto-js - přejít na bezpečné verze (
1.14.0,0.30.3)
Dále zkontrolovat možné artefakty:
- macOS:
/Library/Caches/com.apple.act.mond - Windows:
%PROGRAMDATA%\wt.exe - Linux:
/tmp/ld.py
V případě nálezu je nutné považovat systém za kompromitovaný a rotovat všechny přístupové údaje.
Širší dopad
Incident ukazuje, že bezpečnost dnes nestojí jen na kontrole vlastního kódu, ale na důvěře v celý dodavatelský řetězec.
Stačí kompromitovat jeden účet nebo jednu závislost a útok může zasáhnout velké množství projektů.
Shrnutí
Axios byl kompromitován prostřednictvím npm účtu maintainera. Útočníci přidali škodlivou závislost, která při instalaci spouštěla multiplatformní RAT malware.
Útok byl krátký, technicky vyspělý a navržený tak, aby minimalizoval detekci.