Angriff auf npm: Supply-Chain-Hack kompromittiert Milliarden-Downloads : Phishing-Attacke führt zu Übernahme von Entwicklerkonten und massiven Manipulationen
Ein schwerer Supply-Chain-Angriff hat mehrere populäre npm-Pakete kompromittiert, die zusammen mehr als zwei Milliarden wöchentliche Downloads verzeichnen. Durch ein raffiniertes Phishing-Manöver gelang es Angreifern, die Zugangsdaten mehrerer Maintainer zu übernehmen und manipulierte Versionen ins npm-Registry einzuschleusen. Ziel war der Diebstahl von Kryptowährungen durch Abfangen von Transaktionen im Browser.
Im Zentrum des Angriffs stand der bekannte Entwickler Josh Junon (alias Qix). Er erhielt eine E-Mail, die angeblich von npm stammte und ihn aufforderte, seine Zwei-Faktor-Authentifizierung vor einem angeblich nahenden Stichtag zu erneuern. Absender war die Adresse „support@npmjs[.]help“ – ein täuschend echter Fake.
Die betrügerische Webseite, auf die der Link führte, verlangte nach Nutzername, Passwort und Zwei-Faktor-Token. Die Daten wurden durch eine Adversary-in-the-Middle-Technik abgegriffen und sofort genutzt, um schadhafte Versionen mehrerer weit verbreiteter Pakete hochzuladen.
Junon selbst äußerte sich zerknirscht auf Bluesky: „Tut mir leid, alle miteinander, ich hätte besser aufpassen müssen. Das passt eigentlich nicht zu mir, aber ich hatte eine stressige Woche. Ich werde daran arbeiten, das wieder in Ordnung zu bringen.“
Betroffene Pakete
Insgesamt wurden zwanzig Pakete kompromittiert, die in zahllosen Projekten weltweit als Abhängigkeiten eingebunden sind. Sie gehören zu den meistgenutzten Bibliotheken im JavaScript-Umfeld:
- ansi-regex@6.2.1
- ansi-styles@6.2.2
- backslash@0.2.1
- chalk@5.6.1
- chalk-template@1.1.1
- color-convert@3.1.1
- color-name@2.0.1
- color-string@2.1.1
- debug@4.4.2
- error-ex@1.3.3
- has-ansi@6.0.1
- is-arrayish@0.3.3
- proto-tinker-wc@1.8.7
- supports-hyperlinks@4.1.1
- simple-swizzle@0.2.3
- slice-ansi@7.1.1
- strip-ansi@7.1.1
- supports-color@10.2.1
- supports-hyperlinks@4.1.1
- wrap-ansi@9.0.1
Die Manipulation betrifft zentrale Pakete, die von bekannten Frameworks und Tools indirekt genutzt werden. Damit ist die Eintrittswahrscheinlichkeit hoch, dass auch Entwickler und Unternehmen, welche die Pakete nicht direkt einsetzen, von der Kompromittierung betroffen sind.
Schadcode mit Fokus auf Kryptowährungen
Die in den Paketen eingeschleuste Malware ist technisch ausgefeilt. Analysen zeigen, dass der Code darauf abzielt, Transaktionen in Browsern zu manipulieren. Konkret werden Wallet-Adressen in ausgehenden Transaktionen ausgetauscht. Dabei nutzen die Angreifer den Levenshtein-Algorithmus, um ähnlich aussehende Adressen zu erzeugen, sodass Manipulationen möglichst unbemerkt bleiben.
Nach Angaben von Charlie Eriksen von Aikido Security funktioniert die Schadsoftware wie ein browserbasierter Abfangmechanismus: Sie klinkt sich in den Datenverkehr und in wichtige Schnittstellen von Anwendungen ein. Auf diese Weise verändert sie Anfragen und Antworten so, dass Kryptowährungen unbemerkt auf das Wallet der Angreifer umgeleitet werden.
Konkret testet der Schadcode zunächst, ob er in einem Browser-Kontext ausgeführt wird, indem er prüft, ob „typeof window !== ‚undefined’“ gilt. Anschließend klinkt er sich in zentrale Browser-APIs wie window.fetch, XMLHttpRequest und window.ethereum.request ein. Damit kann er Anfragen und Antworten manipulieren und kryptografische Transaktionen in Echtzeit umlenken.
Das bedeutet, dass die Schadsoftware Endnutzer mit verbundenen Wallets ins Visier nimmt, die eine Webseite besuchen, auf der der kompromittierte Code eingebunden ist. Entwickler sind nicht das eigentliche Ziel, aber wenn sie eine betroffene Seite im Browser öffnen und ein Wallet verbinden, werden auch sie zu Opfern. Wer genau hinter dem Angriff steckt, ist bisher nicht bekannt.
Supply Chain im Fadenkreuz
Die Attacke reiht sich ein in eine lange Serie von Angriffen auf Software-Lieferketten. Plattformen wie npm oder der Python Package Index sind wegen ihrer Popularität besonders attraktiv. Angreifer missbrauchen das Vertrauen der Entwicklergemeinde und schleusen Schadcode über legitime Kanäle ein.
Neben der direkten Übernahme von Entwicklerkonten haben sich weitere typische Angriffsmethoden etabliert:
- Typosquatting: Angreifer veröffentlichen Pakete mit fast identischen Namen, um Tippfehler auszunutzen und Nutzer auf gefälschte Bibliotheken zu locken.
- Slopsquatting: Es werden absichtlich fehlerhafte oder zufällig generierte Abhängigkeiten bereitgestellt, die Entwickler versehentlich installieren.
- Dependency Confusion: Angreifer platzieren Pakete in öffentlichen Repositories, die gleich heißen wie interne Unternehmenspakete, sodass diese unbeabsichtigt eingebunden werden.
- Social Engineering: Über gezielte Manipulation oder Phishing-Angriffe übernehmen Angreifer die Konten von Maintainer und erhalten so direkten Zugriff auf populäre Pakete.
Die jüngste Attacke zeigt, dass auch erfahrene Entwickler wie Qix Opfer werden können – insbesondere wenn Stress und Arbeitslast zu Unachtsamkeit führen.
Zweiter Maintainer kompromittiert
Die Bedrohung beschränkte sich nicht nur auf ein einzelnes Entwicklerkonto. Nach Angaben von Socket und Sonatype wurde auch das Konto duckdb_adminkompromittiert. Über diesen Zugang verbreiteten die Angreifer denselben Schadcode in weiteren weit verbreiteten Paketen:
- @coveops/abi@2.0.1
- @duckdb/duckdb-wasm@1.29.2
- @duckdb/node-api@1.3.3
- @duckdb/node-bindings@1.3.3
- duckdb@1.3.3
- prebid@10.9.1
- prebid@10.9.2
- prebid-universal-creative@1.17.3
Damit vergrößerte sich die Reichweite der Attacke noch einmal deutlich. Besonders kritisch ist dies, weil duckdb als leichtgewichtige Datenbank-Engine in vielen Analyse-Workflows eingesetzt wird und prebid eine zentrale Rolle in der digitalen Werbeindustrie spielt.
Einschätzungen aus der Branche
Der Software Supply Chain Security Report 2025 von ReversingLabs zeigt: Von insgesamt 23 Angriffskampagnen im Jahr 2024, die auf Kryptowährungen abzielten, richteten sich 14 gegen npm. Die restlichen Angriffe konzentrierten sich auf PyPI.
Ilkka Turunen, Field Chief Technology Officer bei Sonatype, sieht in dem Vorfall ein klares Muster: „Das Vorgehen ist typisch: Angreifer übernehmen populäre Open-Source-Pakete und schleusen Schadcode ein. Mit nur einem einzigen Paket können sie Hunderttausende Entwickler und Unternehmen erreichen.“
Auch Experten von Aikido Security und Socket bestätigen, dass Paketübernahmen mittlerweile zu den gängigen Methoden professioneller Angreifergruppen gehören. Besonders die nordkoreanische Hackergruppe Lazarus setzt gezielt auf diese Technik, um ihre Reichweite zu maximieren und möglichst viele Opfer gleichzeitig zu kompromittieren.
Notwendige Konsequenzen
Der Vorfall verdeutlicht, dass klassische Sicherheitsmaßnahmen allein nicht ausreichen. Organisationen, die auf Open-Source-Pakete setzen, müssen ihre Lieferketten absichern und neue Kontrollmechanismen etablieren. Dazu gehören:
- konsequente Härtung von Build- und Deployment-Pipelines
- Einsatz von kryptografischen Paket-Signaturen und Integritätsprüfungen
- automatisierte Überwachung aller Abhängigkeiten
- Zero-Trust-Prinzipien für den Umgang mit Open-Source-Komponenten
- schnelle Reaktionsmechanismen bei Kompromittierungen
Die Attacke auf Qix und duckdb_admin zeigt eindrücklich, dass selbst kleine Nachlässigkeiten zu einem Einfallstor für globale Angriffe werden können. Unternehmen dürfen sich nicht blind auf die Vertrauenswürdigkeit von Plattformen wie npm verlassen. Die Sicherheit von Software-Lieferketten muss in den kommenden Jahren höchste Priorität haben – andernfalls werden Angriffe wie dieser zur Normalität.
