Veröffentlicht am 16.08.2026
Am 31. März 2026 reichten drei Stunden aus, um einen der beliebtesten Bausteine der modernen Web-Entwicklung in eine Waffe zu verwandeln. In diesem Zeitfenster standen im npm-Register – dem zentralen Paketspeicher für JavaScript-Software – zwei manipulierte Versionen von axios zum Download bereit. Wer in diesem Moment einen Build auslöste, ein Update installierte oder eine Continuous-Integration-Pipeline (automatisierter Build- und Test-Prozess, kurz CI/CD) durchlaufen ließ, holte sich möglicherweise eine plattformübergreifende Hintertür auf den Rechner. Ohne Klick, ohne Warnung, ohne weiteres Zutun.
axios ist eine sehr weit verbreitete Programmbibliothek, mit der Anwendungen Netzwerkanfragen stellen. Sie steckt in unzähligen Websites, Webshops und Backend-Diensten – oft, ohne dass die Betreiber es überhaupt wissen, weil sie als sogenannte transitive Abhängigkeit (indirekt über ein anderes Paket mitgeliefert) eingebunden ist. Genau das macht diesen Vorfall so gefährlich: Betroffen sein kann auch, wer axios nie bewusst installiert hat.
Nach der offiziellen Aufarbeitung des axios-Projekts übernahm ein Angreifer im Zuge einer gezielten Social-Engineering-Kampagne mit Schadsoftware das npm-Konto des Lead-Maintainers – also des Hauptverantwortlichen für die Veröffentlichung des Pakets. Mit diesem gekaperten Zugang veröffentlichte er außerhalb des regulären Prozesses zwei bösartige Releases:
Beide Versionen zogen eine zusätzliche Abhängigkeit nach: plain-crypto-js@4.2.1. In deren Konfigurationsdatei package.json war ein sogenannter postinstall-Hook hinterlegt – ein Skript, das npm nach der Installation automatisch ausführt. Der Maintainer Jason Saayman beschreibt es in der offiziellen Postmortem-Analyse unmissverständlich:
„On March 31, 2026, two malicious versions of axios (1.14.1 and 0.30.4) were published to the npm registry through my compromised account." (Jason Saayman, axios-Maintainer, 02.04.2026)
„Both versions injected a dependency called `plain-crypto-js@4.2.1` that installed a remote access trojan on macOS, Windows, and Linux." (Jason Saayman, axios-Maintainer, 02.04.2026)
Ein Remote Access Trojan (RAT) ist eine Schadsoftware, die einem Angreifer die Fernsteuerung des infizierten Systems ermöglicht. Die axios-Verantwortlichen entfernten die bösartigen Versionen um 03:15 UTC aus npm, plain-crypto-js folgte um 03:29 UTC. Das Zeitfenster für die Auslieferung betrug damit rund drei Stunden.
Wichtig zur Einordnung: Dies ist keine klassische Programmierlücke mit einem regulären Patch, sondern ein erfolgreicher Lieferkettenangriff (Supply-Chain-Angriff) auf ein an sich vertrauenswürdig bezogenes Build-Artefakt. Eine eigenständige CVE-Kennung (standardisierte Schwachstellen-Nummer) für den axios-Vorfall selbst ist nicht belastbar bestätigt – es geht um kompromittierte, inzwischen entfernte Pakete.
Der Ablauf war raffiniert und lief still im Hintergrund. Google Threat Intelligence beschreibt den zentralen Trick so:
„The threat actor used the `postinstall` hook within the `package.json` file of the malicious dependency to achieve silent execution." (Google Threat Intelligence Group, 31.03.2026)
Konkret startete beim Installieren automatisch ein verschleierter Dropper namens setup.js – ein kleines Vorbereitungsprogramm, das die eigentliche Schadsoftware nachlädt. Er war mit XOR und Base64 verschleiert, erkannte das Betriebssystem und lud eine zweite Stufe von http://sfrclak[.]com:8000 herunter. Wiz beschreibt das Verhalten:
„The malicious package includes a dropper (`setup.js`) that downloads and executes platform-specific second-stage payloads from `sfrclak.com:8000`, and then self-cleans by deleting itself and restoring a clean package.json." (Wiz, 31.03.2026)
Der Dropper versuchte also, seine eigenen Spuren zu verwischen: Er löschte sich selbst und ersetzte die manipulierte package.json durch eine harmlose Datei. Das erschwert eine nachträgliche Prüfung erheblich – bedeutet aber auch, dass ein heute sauber aussehendes System eine vergangene Infektion nicht ausschließt.
Die nachgeladene zweite Stufe trägt die Bezeichnung WAVESHAPER.V2 und arbeitet auf allen drei großen Betriebssystemen:
/Library/Caches/com.apple.act.mond%PROGRAMDATA%\system.bat und den Autostart-Eintrag (Run-Key) MicrosoftUpdate/tmp/ld.pyAlle Varianten meldeten sich im 60-Sekunden-Takt per HTTP POST mit Base64-kodiertem JSON bei ihrem Steuerungsserver (Command-and-Control, C2). Ihre Fähigkeiten: Systemaufklärung, Auflistung von Dateien und Verzeichnissen, Ausführung beliebiger Befehle und in einigen Varianten das Einschleusen weiterer Programme. Der zentrale Netzwerk-Indikator ist die Domain sfrclak[.]com bzw. die IP-Adresse 142.11.206.73 auf Port 8000.
Diese Unterscheidung ist entscheidend, damit Sie Ihre Lage richtig einschätzen:
Nicht betroffen sind Website-Besucher. Das bloße Aufrufen einer Website im Browser löst den npm-postinstall-Hook nicht aus. Der Ausführungsmechanismus lag ausschließlich beim Installationsvorgang auf dem Entwicklungs- oder Build-Host.
Potenziell betroffen sind Entwicklungsrechner, CI/CD-Runner, Build-Server und Container-Image-Builds, wenn dort im Zeitfenster am 31.03.2026 (grob zwischen 00:21 und 03:29 UTC) ein npm install, npm update, ein frischer Build oder eine nicht deterministische npx-Ausführung mit einer betroffenen axios-Version stattfand.
Gerade solche Hosts sind heikel: Auf ihnen liegen häufig Zugangsdaten für Cloud-Dienste, Git, SSH, Deployment und teils Produktionsdaten. Bei einer RAT-Infektion ist deshalb von einem möglichen Geheimnisabfluss und einer Host-Kompromittierung auszugehen.
Die Größenordnung lässt sich nur begrenzt beziffern – und alle Zahlen sind mit Vorsicht zu genießen:
Öffentliche, verifizierte Gesamtzahlen für betroffene Unternehmen, Personen oder Datensätze liegen nicht vor.
grep -E "axios@(1\.14\.1|0\.30\.4)|plain-crypto-js" package-lock.json yarn.lock 2>/dev/null
npm ls axios plain-crypto-js --all die installierten Versionen anzeigen und mit Lockfiles sowie CI-Logs abgleichen. Bedenken Sie: Ein heute sauberer node_modules-Baum schließt eine historische Ausführung nicht aus, weil der Dropper seine Spuren zu beseitigen versuchte.axios@1.14.1, axios@0.30.4 und plain-crypto-js@4.2.1.sfrclak[.]com, 142.11.206.73 und Port 8000 sowie auf Node.js-Kindprozesse während npm-Installationen. Nutzen Sie die von Google veröffentlichten IOCs, Hashes und YARA-Regeln.%PROGRAMDATA%\wt.exe, %PROGRAMDATA%\system.bat, Run-Key HKCU\Software\Microsoft\Windows\CurrentVersion\Run\MicrosoftUpdate. macOS: /Library/Caches/com.apple.act.mond. Linux: /tmp/ld.py. Diese Indikatoren sind Suchhinweise, kein alleiniger Negativbeweis.Ein bloßes Upgrade oder das Löschen des Pakets beseitigt eine mögliche RAT-Infektion nicht. CISA fasst die Dringlichkeit zusammen:
„CISA urges organizations to implement the following recommendations to detect and remediate a potential compromise." (CISA, 20.04.2026)
axios@1.14.0 für den 1.x-Pfad oder axios@0.30.3 für den 0.x-Pfad. Entfernen Sie plain-crypto-js aus node_modules, aktualisieren Sie das Lockfile, leeren Sie Caches und bauen Sie aus einer sauberen Umgebung neu.sfrclak[.]com, 142.11.206.73 und Port 8000 und suchen Sie rückwirkend sowie fortlaufend nach Verbindungen.ignore-scripts=true verhindert Installationsskripte, min-release-age=7 verzögert den Bezug ganz neuer Pakete. Beide vorab auf Kompatibilität testen, da legitime Build-Schritte betroffen sein können.Für die Zukunft empfiehlt sich außerdem, transitive Abhängigkeiten zu inventarisieren, Versionsauflösungen zu sperren, SBOMs (Software-Stücklisten) und Software-Composition-Analyse einzusetzen und für Maintainer- sowie Build-Zugänge phishing-resistente Mehr-Faktor-Authentifizierung (MFA) zu verwenden. Axios kündigte als eigene Nachbesserung ein unveränderliches Release-Setup sowie OIDC-Publishing (tokenloses, an die CI gebundenes Veröffentlichen) an.
Eine technische Kompromittierung ist nicht automatisch eine meldepflichtige Datenschutzverletzung. DSGVO-relevant wird der Vorfall dann, wenn ein kompromittierter Entwicklungs-, CI- oder Produktionshost personenbezogene Daten verarbeitet hat oder die Backdoor unbefugten Zugriff darauf ermöglicht haben kann – denn eine Verletzung des Schutzes personenbezogener Daten umfasst auch unbefugten Zugang oder unbefugte Offenlegung.
In diesem Fall greift die Meldepflicht nach Art. 33 Abs. 1 DSGVO: Der Verantwortliche muss unverzüglich und möglichst binnen 72 Stunden ab Bekanntwerden an die zuständige Aufsichtsbehörde melden, sofern die Verletzung voraussichtlich nicht nur zu einem geringen Risiko führt. Auftragsverarbeiter müssen den Verantwortlichen nach Art. 33 Abs. 2 unverzüglich informieren. Bei voraussichtlich hohem Risiko ist nach Art. 34 grundsätzlich auch eine Benachrichtigung der betroffenen Personen erforderlich; die Ausnahmen sind im Einzelfall zu prüfen.
Für die Praxis heißt das: Dokumentieren Sie nachvollziehbar, welche Treffer es gab, wie weit die RAT reichen konnte, welche Datenarten betroffen waren, welche Systeme tatsächlich erreichbar waren, ob es Exfiltrationsindikatoren gab und welche Sperr- und Rotationsmaßnahmen Sie ergriffen haben. Ein reiner Lockfile-Fund ohne ausgeführte Installation oder ohne Personenbezug ist anders zu bewerten als eine bestätigte RAT-Ausführung auf einem CI-Runner mit Kunden- oder Produktionszugängen. Dies ist eine allgemeine Einordnung, keine Rechtsberatung im Einzelfall.
Zum Bußgeldrahmen: Art. 83 Abs. 4 lit. a DSGVO sieht für Verstöße gegen die Pflichten nach Art. 33 und 34 Geldbußen von bis zu 10 Mio. Euro oder bis zu 2 % des weltweiten Jahresumsatzes vor, je nachdem, welcher Betrag höher ist. Als – ausdrücklich nicht auf diesen Vorfall bezogener – deutscher Vergleichsfall dokumentiert die Berliner Datenschutzaufsicht ein Bußgeld von 60.000 Euro gegen einen Softwareanbieter wegen fehlerhaft umgesetzter Maßnahmen zur Sicherheit der Verarbeitung. Daraus lässt sich keine Sanktion für den axios-Fall ableiten.
Der axios-Vorfall zeigt exemplarisch, warum Lieferkettenangriffe zu den gefährlichsten Bedrohungen für Software zählen: Nicht Ihre eigene Programmierung war das Problem, sondern ein Baustein, dem alle vertraut haben. Der Schaden entsteht dabei nicht bei den Website-Besuchern, sondern dort, wo Software gebaut wird – auf Build-Servern und Entwicklerrechnern voller wertvoller Zugangsdaten.
Die entscheidende Frage lautet nicht „Nutze ich axios?", sondern: Hat auf meinen Systemen am 31. März 2026 im fraglichen Zeitfenster ein npm-Vorgang stattgefunden? Wenn ja, sind Untersuchung, Neuaufbau und vor allem die Rotation aller Geheimnisse zeitkritisch. Wenn Sie lediglich einen historischen Lockfile-Hinweis ohne Installationsnachweis finden, prüfen Sie Caches und CI-Auditdaten. Und wenn verifizierbar kein Installationsvorgang mit den betroffenen Versionen stattfand, ist Ihr Risiko gering.
OWASP listet Software-Supply-Chain-Failures nicht ohne Grund 2025 als eigene Top-10-Kategorie – der selbstvermehrende npm-Wurm „Shai-Hulud" 2025 erreichte über 500 Paketversionen, bevor npm ihn stoppte. Wer heute Software baut, baut auf fremdem Code. Umso wichtiger ist es, diese Lieferkette abzusichern: mit gesperrten Versionen, deaktivierten Installationsskripten wo möglich, phishing-resistenter MFA für Build-Zugänge und einer klaren Inventur Ihrer Abhängigkeiten. Die drei Stunden vom 31. März sollten Anlass sein, diese Hausaufgaben jetzt zu erledigen – bevor der nächste vertrauenswürdige Baustein zur Waffe wird.