Supply-Chain-Angriff: NPM-Pakete mit 2,6 Milliarden Downloads pro Woche infiziert
Bildquelle: NPM

NPM-Pakete mit 2,6 Milliarden Downloads pro Woche infiziert

Angreifer haben durch einen Malware in NPM-Pakete eingeschleust, die wöchentlich über 2,6 Milliarden Mal heruntergeladen werden.

Sicherheitsforscher von Aikido Security haben einen der bisher größten Supply-Chain-Angriff aufgedeckt, wie sie in ihrem Blogbeitrag berichten. Angreifer schleusten Malware in NPM-Pakete ein, die zusammen über 2,6 Milliarden Mal pro Woche heruntergeladen werden. Die Schadsoftware sollte unbemerkt Kryptowährungen stehlen, indem sie Wallet-Adressen direkt im Browser von Webseiten-Besuchern austauscht. Die Abkürzung npm steht für Node Package Manager. Dies ist das Standard-Paketverwaltungsprogramm einer GitHub-Tochterfirma für JavaScript. Zudem ist npm eine Online-Entwicklerplattform, wo Programmierer ihren JavaScript-Code austauschen können.

Phishing-Mail als Einfallstor

Ausgangspunkt des Angriffs war eine Phishing-Mail an die Entwickler der Pakete. Die Täter gaben sich als NPM-Support aus mit der E-Mail-Addresse „support@npmjs.help„. Die dafür genutzte Domain „npmjs.help“ haben sie erst drei Tage vor dem Angriff, am 5. September 2025, registriert. In der E-Mail forderten sie die Entwickler auf, ihre Zwei-Faktor-Authentifizierung zu aktualisieren.

Um Druck aufzubauen, drohten die Angreifer damit, das Konto vorübergehend zu sperren. Ein Entwickler klickte auf den Link, landete auf einer Phishing-Seite und gab seine Zugangsdaten preis. Damit hatten die Angreifer vollen Zugriff auf seine NPM-Pakete.

Ein anderer Entwickler, Marsup, bekam die gleiche E-Mail

Missbrauch von NPM: So funktioniert die Plattform

NPM ist eine Plattform, über die Entwickler wiederverwendbare Code-Bausteine, sogenannte Pakete, austauschen. Statt alles neu zu erfinden, bauen Programmierer diese fertigen Pakete als Abhängigkeiten in ihre eigene Software ein. Wenn nun ein Entwickler ein Projekt installiert oder aktualisiert, wird für diese Abhängigkeiten in der Regel automatisch die neueste verfügbare Version heruntergeladen.

Die Angreifer nutzten genau diesen Mechanismus aus. Mit den gestohlenen Zugangsdaten loggten sich die Angreifer als der legitime Entwickler auf der NPM-Plattform ein. Sie fügten ihren Schadcode zu den populären Paketen hinzu und veröffentlichten diese als eine offizielle neue Version, quasi als ein reguläres Update. Die Angreifer mussten so kein neues verdächtigtes Paket erstellen, sondern schleusten ihren Schadcode als vermeintlich legitime neue Version ein. Bei einem solchen Supply-Chain-Angriff nutzen Angreifer das Vertrauen in die Software-Lieferkette direkt aus.

Schadcode im Browser: So werden Krypto-Adressen manipuliert

Landet eines dieser manipulierten Pakete im Code einer Webseite, wird der Schadcode an jeden Besucher der Seite ausgeliefert. Im Browser des Nutzers wird der Code dann aktiv und beobachtet im Hintergrund den Netzwerkverkehr mit der Webseite.

Er ist speziell darauf programmiert, nach Krypto-Transaktionen zu suchen. Unterstützt werden dabei Adressen von Bitcoin, Ethereum, Solana, Tron, Litecoin und Bitcoin Cash. Sobald der Schadcode eine solche Transaktion entdeckt, tauscht er im letzten Moment die Empfänger-Adresse gegen eine Wallet der Angreifer aus. Der Nutzer bemerkt davon nichts und verschickt somit die Zahlung an die Angreifer.

Diese NPM-Pakete sind betroffen: Ein Domino-Effekt

Zu den betroffenen Paketen gehören extrem populäre Werkzeuge, die in fast jedem modernen Web-Projekt zu finden sind. Darunter sind Namen wie:

  • debug (über 357 Millionen Downloads pro Woche)
  • chalk (über 299 Millionen Downloads pro Woche)
  • ansi-styles (über 371 Millionen Downloads pro Woche)
  • strip-ansi (über 261 Millionen Downloads pro Woche)

Die riesige Zahl von über 2,6 Milliarden Downloads pro Woche kommt zustande, da diese Pakete meist nicht direkt, sondern wie erwähnt als Abhängigkeit von größeren Tools mit installiert werden. Viele dieser Werkzeuge sind für grundlegende Aufgaben wie das farbige Anzeigen von Text in Entwickler-Konsolen (chalk) oder für die Fehlersuche (debug) zuständig.

Screenshot von der debug Seite auf NPM.
Das Paket debug allein hatte über 357 Millionen Downloads pro Woche

Supply-Chain-Angriffe häufen sich

Das NPM-Sicherheitsteam hat schnell reagiert und die manipulierten Versionen entfernt. Obwohl die betroffenen Pakete milliardenfach pro Woche heruntergeladen werden, waren die schädlichen Versionen nur für wenige Stunden online. Es scheint daher unwahrscheinlich, dass der Schadcode in großem Stil in Systeme gelangt ist. Aus dem Grund ist es momentan auch völlig unklar, ob die Angreifer mit ihrer Methode überhaupt Geld erbeuten konnten.

Der Vorfall erinnert an die XZ-Backdoor vom März 2024, welche durch einen Supply-Chain-Angriff entstanden ist. Damals wäre durch die Manipulation der unscheinbaren Bibliothek XZ-Utils beinahe eine Backdoor in OpenSSH ingeschleust worden. Auch wenn der aktuelle NPM-Angriff schneller entdeckt und technisch einfacher war, folgt er dem selben Prinzip, dass man den Schadcode über eine Abhängigkeit einschleust.

Dass dieses Vorgehen im NPM-Ökosystem immer wieder versucht wird, zeigte bereits der Fall eslint-config-prettier. Im Juli haben Unbekannte das Paket mit über 2,7 Millionen wöchentlichen Downloads kompromittiert. Ein einziger erfolgreicher Phishing-Angriff auf eine Person kann so genügen, um eine Kettenreaktion auszulösen. Im Anschluss wird der schädliche Code auf Millionen von Geräten ausgeführt.