Der Vorfall betrifft das npm-Paket von Jscrambler, einem kommerziellen Dienst zum Schutz von JavaScript-Anwendungen für Web und Mobilgeräte vor Reverse Engineering und Manipulation. Das Paket wird nach Unternehmensangaben mit Code Integrity verwendet und erlaubt es Entwicklern, ihren JavaScript-Code an den Dienst von Jscrambler zu übertragen, um ihn gegen Veränderungen abzusichern.

Wie Jscrambler in einer Warnung vom Samstag mitteilte, wurde eine nicht autorisierte, bösartige Version des Pakets veröffentlicht. Die manipulierten Fassungen umfassten die Releases 8.14, 8.16, 8.17 und 8.20. Darin steckte eine Infostealer-Malware, die beim „Vorinstallations“-Hook anlief. Andere Jscrambler-Produkte seien davon nicht betroffen gewesen, erklärte das Unternehmen ausdrücklich; das gelte auch für Webpage Integrity.

Jscrambler reagierte nach eigenen Angaben schnell, dennoch blieb das schädliche Paket für zwei Stunden online. Danach wurde es als veraltet markiert und durch die sichere Version 8.22 ersetzt. Das betroffene Paket war zudem eine Abhängigkeit von vier weiteren Jscrambler-Paketen. Auch diese hat der Hersteller zurückgezogen und durch neue Versionen ersetzt.

Die Reichweite des Vorfalls lässt sich über npm-Statistiken beziffern: Innerhalb des zweistündigen Fensters wurde das manipulierte Paket 1.479 Mal heruntergeladen. Jscrambler zufolge verzeichnet das betreffende npm-Paket normalerweise 17.000 Downloads pro Woche.

Aufgedeckt wurde die Kompromittierung von Socket. Die Anwendungssicherheitsfirma analysierte die nicht autorisierte Veröffentlichung und berichtet, dass die Malware auf mehrere Arten sensibler Daten zielte. Außerdem habe der Schadcode eine starke, zeichenkettenweise Verschleierung mit dem Verschlüsselungsalgorithmus ChaCha20-Poly1305 eingesetzt, was die Rückanalyse erschwert habe.

Als Ursache nennt Jscrambler kompromittierte npm-Zugangsdaten zum Veröffentlichen des Pakets. Diese Zugangsdaten seien inzwischen widerrufen worden. Nach dem Vorfall habe das Unternehmen zusätzliche Sicherheitskontrollen für die Veröffentlichungs-Pipeline eingeführt.

Entwicklern, die die manipulierten npm-Pakete verwendet haben, rät Jscrambler, ihre Umgebungen als kompromittiert zu behandeln, sämtliche Geheimnisse auszutauschen und aus sicheren Backups wiederherzustellen. Kunden sollten zudem sicherstellen, dass sie die aktuelle Produktversion einsetzen.