Der Angriffsvektor war bemerkenswert sophisticated: Sicherheitsforscher von StepSecurity offenbarten, dass der Angreifer das npm-Konto des Axios-Maintainers “jasonsaayman” kompromittiert hatte. Durch das klassische npm-Zugriffstoken konnten manipulierte Versionen direkt in die Registry hochgeladen werden. Die bösartige Abhängigkeit “plain-crypto-js” in Version 4.2.1 wurde nie im eigentlichen Axios-Code importiert — ihre einzige Funktion war die Ausführung eines Postinstall-Skripts.
Was diesen Angriff besonders bemerkenswert macht, ist seine Planung und Präzision. Die Fake-Dependency wurde 18 Stunden vor der Veröffentlichung vorbereitet. Drei separate, plattformspezifische Payloads waren vorab gebaut. Beide betroffenen Versionen wurden innerhalb von 39 Minuten veröffentlicht. Jede Spur war darauf ausgelegt, sich selbst zu zerstören — was klassische forensische Analysen extrem erschwert.
Die Malware-Architektur folgt einem ausgefeilten Mehrschicht-Modell: Ein obfuskiertes Node.js-Dropper-Skript (“setup.js”) verzweigt sich je nach Betriebssystem in verschiedene Angriffspfade. Die Kommunikation mit dem Command-and-Control-Server erfolgte über eine einzige URL (packages.npm.org/product0 bis product2), wobei verschiedene Endpunkte für macOS, Windows und Linux zuständig sind. Der MacOS-RAT ist in C++ geschrieben, führt System-Fingerprinting durch und signalisiert dem Remote-Server alle 60 Sekunden Einsatzbereitschaft. Der Linux-RAT bietet identische Funktionalität — beide unterstützen die Ausführung zusätzlicher Payloads, Shell-Kommandos und Dateisystem-Enumeration.
Besonders raffiniert ist die Verschleierungsstrategie. Der eigentliche Axios-Code wurde völlig unverändert gelassen — etwas, das traditionelle Code-Reviews leicht übersehen können. Die bösartige Aktivität versteckt sich vollständig in der transitiven Abhängigkeit und wird automatisch durch npms Postinstall-Lifecycle ausgelöst. Nach der Payload-Ausführung löscht die Malware methodisch ihre Spuren: Das Postinstall-Skript wird entfernt, die verdächtige package.json gelöscht und eine saubere Version aus “package.md” wiederhergestellt.
StepSecurity identifizierte, dass der Angreifer ein Proton-Mail-Konto (ifstap@proton.me) zur Kontoübernahme nutzte. Das erklärt auch die anonyme Infrastruktur des Angriffs. Sicherheitsfirma Socket entdeckte zusätzlich zwei weitere kompromittierte Pakete — “@shadanai/openclaw” und “@qqbrowser/openclaw-qbot” —, die die gleiche Malware über vendierte Abhängigkeiten verbreiteten.
Deutsche Unternehmen sollten sofort ihre npm-Abhängigkeiten überprüfen und auf sichere Versionen (1.14.0 oder 0.30.3) downgraden. Alle Zugriffstoken und Secrets müssen rotiert werden. Die massiven Download-Zahlen von Axios deuten darauf hin, dass tausende deutscher Projekte betroffen sein könnten.
