Die größte bekannte Supply-Chain-Attacke in der npm-Ökosystemgeschichte hat binnen eines kurzen Zeitfensters von rund zwei Stunden Schadcode in etwa 10% der Cloud-Umgebungen platziert – und den Angreifern dennoch nur wenige Dollar eingebracht. Der Vorfall verdeutlicht, wie schnell sich manipulierte JavaScript-Pakete über weit verbreitete Abhängigkeiten verbreiten und warum robuste Dependency Hygiene für Node.js-Projekte geschäftskritisch ist.
Einstiegspunkt: Phishing gegen Maintainer-Konto
Ausgangspunkt war ein Phishing-angetriebener Credential-Diebstahl bei Maintainer Josh Junon (Qix). Mit den kompromittierten Zugangsdaten veröffentlichten die Täter manipulierte Versionen von rund 20 populären Paketen, darunter chalk, debug und ansi-styles – Bibliotheken mit zusammen über 2,6 Milliarden wöchentlichen Downloads. Der eingeschleuste Code zielte auf das Abfangen und Umleiten von Krypto-Transaktionen.
Reichweite und Tempo: 99% Abhängigkeitsabdeckung, 10% Cloud-Treffer
Analysen von Wiz zeigen, dass mindestens eines der kompromittierten Pakete als Basisabhängigkeit in praktisch jedem JavaScript-/Node.js-Stack vorkommt und in 99% der Cloud-Umgebungen präsent ist. Innerhalb des kurzen Veröffentlichungsfensters erreichten die bösartigen Builds laut Wiz-Daten etwa jede zehnte Cloud-Umgebung. Wie die Analysten zusammenfassen: „In einem zweistündigen Fenster schaffte es der Schadcode in rund 10% aller beobachteten Umgebungen.“
Technische Umsetzung: Hooking von Web3-Transaktionen im Browser
Laut Security Alliance war die Payload für Browser-Kontexte optimiert. Sie prüfte window.ethereum
und hakte Standardfunktionen von Ethereum-Transaktionen ein – approve, permit, transfer, transferFrom – um Zieladressen auf 0xFc4a4858bafef54D1b1d7697bfb5c52F4c166976 umzuschreiben. Auch einfache ETH-Transfers ohne Zusatzdaten wurden umgeleitet. Für Solana manipulierten die Angreifer den Empfänger mit einer fehlerhaften Zeichenfolge beginnend mit „1911…“, was Transaktionen unbrauchbar machte.
Minimale Monetarisierung trotz massiver Verbreitung
Obwohl die Verbreitung bemerkenswert war, blieb der finanzielle Schaden gering. Die Community identifizierte und entfernte die Schadpakete binnen Stunden. Untersuchungen deuten darauf hin, dass die Täter statt eigener Wallets Adressen von Uniswap und anderen Swap-Kontrakten nutzten – ein Fehler, der die Ausbeute drastisch reduzierte und Gewinne auf Centbeträge bis etwa 50 US-Dollar begrenzte.
Zweite Kompromittierung: DuckDB-Account und ähnliche Payload
Nach Angaben von Socket kompromittierte die gleiche Gruppe später den Maintainer-Account von DuckDB und platzierte eine nahezu identische Schadfunktion. Die dokumentierte „Beute“ blieb abermals überschaubar: rund 429 US-Dollar in ETH, 46 US-Dollar in SOL und kleinere Beträge in BTC, Tron, BCH und LTC – insgesamt etwa 600 US-Dollar. Dass die Angreifer bei vorhandenem Zugriff keine Persistenz, Lateral Movement oder Ransomware versuchten, deutet auf ein enges Zielprofil (Krypto-Diebstahl) oder mangelnde Operationalisierung hin.
Lehren für die Software-Lieferkette: Prioritäten und Kontrollen
Der Vorfall unterstreicht den strukturellen Risikofaktor von Ökosystem-Abhängigkeiten: Geschwindigkeit und Skalierung drücken die Zeit zur Entdeckung, während die Wirkung in Build- und Laufzeitumgebungen sofort greift. Organisationen sollten daher zwingend MFA und Härtung für Maintainer-Konten durchsetzen, Artefakte mit Sigstore signieren und provenance attestieren, sowie Dependencies per Lockfiles fixieren und regelmäßig verifizieren.
Ergänzend empfiehlt sich ein aktuelles SBOM mit Alerting auf Paket- und Versionsänderungen, die Isolation von CI/CD-Runnern inklusive Egress-Kontrollen, sowie das Prinzip Least Privilege für Tokens und Secrets. In der Praxis senkt eine automatisierte Aufnahmeprüfung von Bibliotheken, kombiniert mit Quarantänefenstern für neue Major-Releases, die Eintrittswahrscheinlichkeit und verkürzt die MTTR im Incident Response.
Unternehmen, die Node.js und npm einsetzen, sollten jetzt Build- und Release-Vertrauensketten stärken, Transparenz über Artefaktherkunft herstellen und Abhängigkeitskontrollen automatisieren. Wer diese Maßnahmen priorisiert, begrenzt die Wirkung zukünftiger Supply-Chain-Attacken – und gewinnt Zeit, die in schnell eskalierenden Ökosystemen über Schadenshöhe und Reaktionsgeschwindigkeit entscheidet.