Axios NPM Supply Chain Angriff: API Projekte schützen

Ashley Innocent

Ashley Innocent

1 April 2026

Axios NPM Supply Chain Angriff: API Projekte schützen

Apidog für Unternehmen

On-Premises-Bereitstellung

SSO & RBAC

SOC 2 konform

Apidog Enterprise entdecken

Kurz gesagt

Am 31. März 2026 haben Angreifer das npm-Konto des Hauptbetreuers von Axios kompromittiert, dem beliebtesten JavaScript HTTP-Client mit 83 Millionen wöchentlichen Downloads. Sie veröffentlichten bösartige Versionen (1.14.1 und 0.30.4), die einen plattformübergreifenden RAT (Remote Access Trojan) enthielten, der Zugangsdaten, SSH-Schlüssel und Cloud-Tokens von Entwicklercomputern stiehlt. Führen Sie sofort ein Downgrade auf Axios 1.14.0 durch, ändern Sie alle Geheimnisse und suchen Sie nach Kompromittierungsindikatoren auf Ihrem System.

Einleitung

Axios verarbeitet mehr HTTP-Anfragen als jede andere JavaScript-Bibliothek. Wenn Sie in den letzten fünf Jahren einen API-Client erstellt, Endpunkte getestet oder ein Frontend mit einem Backend verbunden haben, haben Sie es wahrscheinlich verwendet.

Am 31. März 2026, um 00:21 Uhr UTC, veröffentlichte ein Bedrohungsakteur Axios Version 1.14.1 über ein kompromittiertes Betreuerkonto. Das Paket sah identisch mit der legitimen Version aus. Der Unterschied war chirurgisch: Nur package.json änderte sich über 86 Dateien hinweg. Aber diese einzelne Datei injizierte eine Phantom-Abhängigkeit namens plain-crypto-js, die einen Remote Access Trojaner auf jedem Computer bereitstellte, der npm install ausführte.

Die bösartigen Versionen blieben etwa zwei bis drei Stunden lang aktiv, bevor npm sie entfernte. Zwei bis drei Stunden bei 83 Millionen wöchentlichen Downloads.

💡
Wenn Sie APIs entwickeln oder testen, zielte dieser Angriff direkt auf Ihre Toolchain ab. Der integrierte HTTP-Client von Apidog macht Drittanbieter-HTTP-Bibliotheken in Ihrem API-Test-Workflow überflüssig und eliminiert diese gesamte Angriffsfläche. Laden Sie Apidog kostenlos herunter, um die folgenden Schritte des Sicherheitsaudits zu verfolgen.
button

Dieser Artikel erläutert, wie der Angriff funktionierte, wie Sie erkennen können, ob Ihre Systeme kompromittiert sind, und welche Änderungen API-Teams zukünftig bei ihrem Abhängigkeitsmanagement vornehmen sollten.

Wie sich der Axios-Supply-Chain-Angriff entfaltete

Der Zeitplan

Der Angreifer führte diese Operation mit Präzision innerhalb eines 18-stündigen Zeitfensters aus:

Wie das Konto kompromittiert wurde

Der Angreifer übernahm das jasonsaayman npm-Konto, den primären Axios-Betreuer. Sie änderten die registrierte E-Mail-Adresse in ifstap@proton.me. Die wichtigsten forensischen Beweise:

Dieser Unterschied ist wichtig. Wenn Ihre Organisation npm-Pakete veröffentlicht, ist das Fehlen von OIDC-Bindung und CI/CD-Herkunft bei einem Release eine rote Flagge, die eine automatisierte Überprüfung wert ist.

Die Abhängigkeitsinjektionstechnik

Das machte diesen Angriff subtil. Der Angreifer modifizierte den Axios-Quellcode nicht. Sie änderten eine Zeile in package.json, um plain-crypto-js@^4.2.1 als Laufzeitabhängigkeit hinzuzufügen. Dieses Paket wurde nirgendwo im Axios-Code importiert. Es existierte ausschließlich, um seinen postinstall-Hook während npm install auszulösen.

Die Binäranalyse bestätigte die chirurgische Präzision: Nur package.json unterschied sich zwischen der sauberen 1.14.0-Version und der kompromittierten 1.14.1 über alle 86 Dateien im Paket hinweg.

Was die bösartige Nutzlast tut

Der Dropper-Mechanismus

Der postinstall-Hook in plain-crypto-js führte eine 4,2 KB große, obfuskierte Datei namens setup.js aus. Er verwendete zwei Obfuskationsschichten:

  1. Schicht 1: XOR-Chiffre unter Verwendung eines Schlüssels, der aus der Zeichenfolge "OrDeR_7077" abgeleitet wurde
  2. Schicht 2: Base64-Kodierung mit Zeichenumkehr

Einmal dekodiert, identifizierte der Dropper das Host-Betriebssystem und führte plattformspezifische Nutzlasten aus.

Plattformspezifische Angriffswege

macOS:

Writes AppleScript to /tmp/6202033
Executes via osascript
Downloads payload to /Library/Caches/com.apple.act.mond

Windows:

Copies PowerShell to %PROGRAMDATA%\wt.exe (persistence artifact)
Executes VBScript dropper via cscript

Linux:

Downloads Python RAT to /tmp/ld.py
Executes via nohup python3

Alle drei Zweige kontaktierten einen Command-and-Control-Server mit plattformspezifischen POST-Bodies:

RAT-Fähigkeiten

Der bereitgestellte Remote Access Trojan unterstützt:

Einfach ausgedrückt: Der Angreifer erhält die vollständige Fernsteuerung über Ihren Entwicklungscomputer. Er kann Ihre .env-Dateien lesen, Ihre API-Schlüssel stehlen, Ihre SSH-Schlüssel kopieren und Cloud-Anbieter-Tokens abgreifen.

Anti-Forensik: Die selbstreinigende Nutzlast

Nach der Ausführung führte der Dropper drei Bereinigungsschritte durch:

  1. Löschte setup.js selbst
  2. Löschte die bösartige package.json
  3. Benannte eine vorab vorbereitete package.md (die Version 4.2.0 meldete) in package.json um

Dies schuf eine Täuschungsschicht, bei der npm list Version 4.2.0 statt 4.2.1 melden würde, die die Nutzlast ausführte. Ein Entwickler, der seine Abhängigkeiten nachträglich überprüfte, würde nichts Falsches sehen.

Wer steckt hinter diesem Angriff

Die Google Threat Intelligence Group schrieb den Axios-Angriff UNC1069 zu, einem mutmaßlichen nordkoreanischen Bedrohungsakteur. Die macOS-Malware weist „erhebliche Überschneidungen“ mit WAVESHAPER auf, einer C++-Backdoor, die Mandiant im Februar 2026 verfolgte.

Nordkoreanische staatlich gesponserte Gruppen haben umfassende Erfahrung mit Supply-Chain-Angriffen. Sie haben historisch kompromittierte Entwicklertools verwendet, um Kryptowährung zu stehlen, und diese Operation folgt dem gleichen Muster: Kompromittieren eines weit verbreiteten Entwicklertools, um Zugang zu Anmeldeinformationen und Cloud-Infrastruktur in Tausenden von Organisationen zu erhalten.

Das Niveau der Raffinesse ist bemerkenswert. Die zweistufige Abhängigkeitsinjektion, die plattformübergreifende RAT-Bereitstellung und die antiforensische Bereinigung deuten alle auf eine gut ausgestattete Operation hin. Dies ist kein Script-Kiddie, das einen Kryptominer ablegt. Es ist eine Geheimdienstoperation, die auf Entwickler-Workstations abzielt.

So überprüfen Sie, ob Sie betroffen sind

Schritt 1: Überprüfen Sie Ihre Axios-Version

Führen Sie dies in jedem Projekt aus, das Axios verwendet:

npm list axios 2>/dev/null | grep -E "1\.14\.1|0\.30\.4"

Wenn dies Ergebnisse liefert, hat Ihr Projekt eine kompromittierte Version installiert.

Schritt 2: Überprüfen Sie die bösartige Abhängigkeit

ls node_modules/plain-crypto-js 2>/dev/null && echo "POTENZIELL BETROFFEN"

Selbst wenn der Dropper danach aufgeräumt hat, bestätigt die Existenz des Verzeichnisses, dass die Nutzlast ausgeführt wurde.

Schritt 3: Überprüfen Sie Ihr System auf RAT-Artefakte

macOS:

ls -la /Library/Caches/com.apple.act.mond 2>/dev/null

Linux:

ls -la /tmp/ld.py 2>/dev/null

Windows (PowerShell):

Test-Path "$env:PROGRAMDATA\wt.exe"

Schritt 4: Überprüfen Sie Netzwerkindikatoren

Blockieren und scannen Sie auf Verbindungen zu:

Schritt 5: Überprüfen Sie CI/CD-Build-Protokolle

Überprüfen Sie alle CI/CD-Pipeline-Ausführungen zwischen dem 31. März, 00:21 Uhr UTC und 03:15 Uhr UTC. Jede npm install- oder npm ci-Ausführung während dieses Zeitfensters, die Axios auflöste, könnte den Dropper in Ihrer Build-Umgebung ausgeführt haben.

Sofortige Abhilfemaßnahmen

Wenn Sie Indikatoren für eine Kompromittierung finden, behandeln Sie das betroffene System als vollständig kompromittiert. Hier ist die Prioritätenliste:

1. Axios sofort downgraden

npm install axios@1.14.0

Oder für den 0.x-Zweig:

npm install axios@0.30.3

2. Versions-Overrides zu Ihrer package.json hinzufügen

Verhindern Sie die transitive Auflösung zu bösartigen Versionen:

{
  "overrides": {
    "axios": "1.14.0"
  }
}

Für Yarn:

{
  "resolutions": {
    "axios": "1.14.0"
  }
}

3. Entfernen Sie das bösartige Paket

rm -rf node_modules/plain-crypto-js

4. Alle Zugangsdaten ändern

Wenn der Dropper auf Ihrem Computer ausgeführt wurde, gehen Sie davon aus, dass Folgendes kompromittiert ist:

Ändern Sie alles. Es gibt keine Möglichkeit zu wissen, was der RAT während seines aktiven Fensters exfiltriert hat.

5. C2 auf Netzwerkebene blockieren

Fügen Sie zu Ihrer Hosts-Datei oder Firewall-Regeln hinzu:

echo "0.0.0.0 sfrclak.com" | sudo tee -a /etc/hosts

6. Wenn Artefakte gefunden werden, den Computer neu aufsetzen

Ein RAT mit Shell-Ausführung und Dateisystemzugriff kann alles ändern. Wenn Sie Artefakte aus Schritt 3 gefunden haben, trauen Sie dem System nicht. Setzen Sie es aus einem bekanntermaßen guten Zustand neu auf.

Langfristige Schutzmaßnahmen für API-Entwicklungsteams

Lockfiles verwenden und genaue Versionen festlegen

Der Axios-Angriff nutzte ^-Semver-Bereiche aus. Wenn Ihre package.json "axios": "^1.14.0" besagt, löst npm die neueste kompatible Version auf, die während des Angriffsfensters 1.14.1 war.

{
  "dependencies": {
    "axios": "1.14.0"
  }
}

Legen Sie genaue Versionen fest. Committen Sie immer Ihre package-lock.json oder yarn.lock. Führen Sie npm ci anstelle von npm install in CI/CD aus, um die Auflösung der Lockfile zu erzwingen.

Postinstall-Skripte in CI/CD deaktivieren

Der gesamte Angriff hing von der Ausführung von postinstall-Hooks während npm install ab. Sie können dies deaktivieren:

npm ci --ignore-scripts

Dies bricht einige Pakete, die native Kompilierung benötigen. Testen Sie Ihre Builds zuerst und erlauben Sie dann selektiv Skripte für Pakete, die sie benötigen, über .npmrc:

ignore-scripts=true

Abhängigkeiten regelmäßig prüfen

npm audit
npx socket-security/cli audit

Führen Sie diese in CI/CD als Gate aus. Jede kritische oder hohe Schwachstelle sollte den Build blockieren.

Reduzieren Sie Ihre Abhängigkeitsfläche für HTTP-Clients

Hier ist die tiefere Frage, die dieser Angriff aufwirft: Warum hängt Ihr API-Test-Workflow von einer Drittanbieter-HTTP-Bibliothek ab, die kompromittiert werden kann?

Apidog bietet einen integrierten HTTP-Client für API-Tests, Debugging und Dokumentation. Sie benötigen kein Axios, node-fetch oder got in Ihrem Test-Stack. Der HTTP-Client ist Teil der Plattform, ohne Drittanbieter-Abhängigkeiten, die kompromittiert werden könnten.

Speziell für API-Tests eliminiert das Verschieben Ihrer HTTP-Anfragen in Apidog die gesamte Angriffsfläche:

Testen Sie Apidog kostenlos, um zu sehen, wie das Entfernen von HTTP-Bibliotheksabhängigkeiten aus Ihrem API-Workflow Ihr Supply-Chain-Risiko reduziert.

Paket-Provenienz überprüfen

npm unterstützt jetzt Paket-Provenienz über Sigstore. Überprüfen Sie, ob Pakete, von denen Sie abhängen, dies verwenden:

npm audit signatures

Den bösartigen Axios-Versionen fehlte die OIDC-Provenienz. Legitime Releases aus CI/CD-Pipelines enthalten eine kryptografische Bestätigung ihres Build-Ursprungs. Wenn eine neue Version ohne Provenienz erscheint, behandeln Sie sie mit Misstrauen.

Was das für das JavaScript-Ökosystem bedeutet

Das Vertrauensmodell ist kaputt

Npms Vertrauensmodell hängt von der Kontosicherheit des Betreuers ab. Eine einzige kompromittierte Anmeldeinformation gibt einem Angreifer die Kontrolle über ein Paket, das 83 Millionen Projekte jede Woche installieren. Die Zwei-Faktor-Authentifizierung hilft, aber langlebige Zugriffstoken können immer noch von kompromittierten Entwicklungsumgebungen gestohlen werden.

Die Community diskutiert mehrere strukturelle Änderungen:

Supply-Chain-Angriffe verlangsamen sich nicht

Dieser Angriff ereignete sich nur wenige Tage nach dem RubyGems-Zwischenfall und den anhaltenden PyPI-Abhängigkeitsproblemen. Paketregister in jedem Sprach-Ökosystem stehen unter ständigem Angriff. API-Entwickler müssen ihren Abhängigkeitsbaum als Angriffsfläche und nicht als Bequemlichkeit betrachten.

Die Reddit-Diskussion fasste die Stimmung gut zusammen: „NPM ist heute die größte Schwachstelle des Internets und wird immer noch eine riesige Katastrophe verursachen.“ Unabhängig davon, ob Sie der Übertreibung zustimmen oder nicht, der Axios-Angriff zeigt, dass der Explosionsradius real ist.

Vergleich: HTTP-Client-Abhängigkeitsansätze

Ansatz Supply-Chain-Risiko Wartungsaufwand Testfähigkeit
Axios + benutzerdefinierte Skripte Hoch (Drittanbieter-Abhängigkeit) Hoch (Versionsverwaltung) Manuelle Einrichtung erforderlich
Node.js native Fetch Niedrig (im Laufzeitumgebung integriert) Niedrig Eingeschränkte Testfunktionen
Apidog integrierter Client Keine (keine npm-Abhängigkeit) Keine (Plattform-verwaltet) Volle Test-, Mock- und Dokumentationsfunktionen
curl/httpie Skripte Niedrig (System-Tool) Mittel Eingeschränkte Automatisierung

FAQ

Ist Axios jetzt sicher zu verwenden?

Ja. Die Versionen 1.14.0 und 0.30.3 sind sauber. Die kompromittierten Versionen (1.14.1 und 0.30.4) wurden innerhalb von etwa drei Stunden deinstalliert. Überprüfen Sie Ihre installierte Version mit npm list axios und überprüfen Sie Ihre Lockfile, um zu bestätigen, dass Sie eine sichere Version verwenden.

Wie erfahre ich, ob der RAT auf meinem Computer ausgeführt wurde?

Suchen Sie nach plattformspezifischen Artefakten: /Library/Caches/com.apple.act.mond unter macOS, /tmp/ld.py unter Linux oder %PROGRAMDATA%\wt.exe unter Windows. Überprüfen Sie auch, ob node_modules/plain-crypto-js in einem Ihrer Projekte existiert. Der Dropper bereinigt sich selbst, daher garantiert das Fehlen von Artefakten nicht, dass Sie sicher sind, wenn Sie die kompromittierte Version installiert haben.

Sollte ich die Verwendung von Axios ganz einstellen?

Nicht unbedingt. Axios bleibt eine gut gewartete Bibliothek mit einer starken Erfolgsbilanz. Dieser Angriff sollte Sie jedoch dazu anregen, zu bewerten, ob Sie überhaupt einen HTTP-Client eines Drittanbieters benötigen. Node.js 18+ enthält natives fetch. Für API-Tests bieten Plattformen wie Apidog integrierte HTTP-Clients, die diese Abhängigkeit eliminieren.

Wie kann ich Supply-Chain-Angriffe in meinen Projekten verhindern?

Legen Sie genaue Abhängigkeitsversionen fest, committen Sie Lockfiles, führen Sie npm ci --ignore-scripts in CI/CD aus, überprüfen Sie Abhängigkeiten regelmäßig, überprüfen Sie die Paket-Provenienz mit npm audit signatures und minimieren Sie Ihren Abhängigkeitsbaum. Erwägen Sie, API-Test-Workflows in integrierte Plattformen zu verlagern, die nicht auf npm-Pakete für die HTTP-Kommunikation angewiesen sind.

Stand dieser Angriff in Zusammenhang mit dem Claude-Code-Quellcode-Leak?

Beide Ereignisse ereigneten sich am selben Tag (31. März 2026), sind aber unabhängig voneinander. Der Axios-Angriff war eine bewusste Supply-Chain-Kompromittierung durch einen staatlich gesponserten Bedrohungsakteur. Der Claude-Code-Leak resultierte aus einem Fehler im Bun-Build-Tool, das Quellkarten in der Produktion auslieferte. Der zufällige Zeitpunkt hat die Diskussion über die Sicherheit des npm-Registers insgesamt angeheizt.

Wer steckte hinter dem Axios-Angriff?

Die Google Threat Intelligence Group schrieb den Angriff UNC1069 zu, einem mutmaßlichen nordkoreanischen Bedrohungsakteur. Die macOS-Malware weist erhebliche Überschneidungen mit WAVESHAPER auf, einer von Mandiant verfolgten Backdoor. Nordkoreanische Gruppen verfügen über umfangreiche Erfahrung mit Supply-Chain-Angriffen, die typischerweise auf Entwickleranmeldeinformationen und Kryptowährungsinfrastruktur abzielen.

Wie viele Entwickler waren betroffen?

Die bösartigen Versionen waren etwa zwei bis drei Stunden lang aktiv. Bei 83 Millionen wöchentlichen Downloads ist das potenzielle Risiko erheblich. npm hat keine offiziellen Zahlen zu den Auswirkungen veröffentlicht. Die Laufzeit-Erkennung von StepSecurity bestätigte, dass der Dropper den C2 innerhalb von 1,1 Sekunden nach dem Start von npm install kontaktierte, noch bevor die Abhängigkeitsauflösung abgeschlossen war.

Kann Apidog helfen, Supply-Chain-Angriffe zu verhindern?

Apidog eliminiert einen wichtigen Angriffsvektor, indem es einen integrierten HTTP-Client für API-Tests, Debugging und Dokumentation bereitstellt. Sie müssen Axios, node-fetch oder andere HTTP-Bibliotheken nicht in Ihren Test-Workflow installieren. Dies reduziert Ihre npm-Abhängigkeitsfläche und beseitigt das Risiko, dass kompromittierte HTTP-Client-Pakete Ihren API-Entwicklungsprozess beeinträchtigen.

Wichtige Erkenntnisse

Der Axios-Angriff ist ein Weckruf. Jede Abhängigkeit in Ihren node_modules ist eine Vertrauensentscheidung. Stellen Sie sicher, dass Sie diese Entscheidungen bewusst treffen und nicht standardmäßig.

button

Praktizieren Sie API Design-First in Apidog

Entdecken Sie eine einfachere Möglichkeit, APIs zu erstellen und zu nutzen