Step Security zufolge handelte es sich in beiden Fällen um Kompromittierungen der CI/CD-Pipeline, nicht um gestohlene npm-Token oder böswillige Maintainer. Die Forscher schreiben, der Angreifer habe Commits unter einer Platzhalter-Git-Identität eingeschleust und anschließend die echten Release-Workflows der Repositories die Veröffentlichung über die vertrauenswürdige GitHub-OIDC-Integration von npm erledigen lassen. So erhielten die resultierenden Pakete gültige SLSA-Nachweise trotz eingeschleuster Malware.

Socket beschreibt die erste Stufe der Infektion als verschleierte JavaScript-Anweisung in den veröffentlichten Paketen. Sobald die infizierte Datei importiert wird, löst sie letztlich einen Downloader aus. Ein Skript der zweiten Stufe mit Konfigurationsdaten und der eigentlichen Laufzeitumgebung wird anschließend aus dem Peer-to-Peer-Content-Delivery-Netzwerk IPFS nachgeladen und als versteckter Prozess gestartet.

Wiz zufolge besteht die dritte Stufe aus „einem 92.000 Zeilen langen Malware-Framework mit modularer Architektur“. Dieses sorgt für Persistenz auf dem System und kommuniziert über mehrere Kanäle mit einem Command-and-Control-Server: per HTTP, über Nostr-Relays, Ethereum-Smart-Contracts und ein libp2p-Mesh-Netzwerk.

SafeDep verweist darauf, dass die finale Nutzlast Artefaktnamen und Konfigurationsdateien verwendet, die auf die aus früheren Supply-Chain-Angriffen bekannte Miasma-Backdoor hindeuten. Die Forscher halten es jedoch für möglich, dass es sich entweder um einen privaten, parallelen Build derselben Betreiber oder um eine andere Gruppe handelt, die nach Veröffentlichung des Quellcodes die Marke Miasma übernommen hat.

Der Zweck der Malware scheint im Diebstahl von Geheimnissen zu liegen. Genannt werden Zugangsdaten, Authentifizierungsschlüssel, Token, Browser-Daten, sensible Informationen aus CI/CD-Systemen und KI-Entwicklerwerkzeugen, Kryptowallets sowie Datenbanken. Der Code kann außerdem die Werkzeuge Gitleaks und HackBrowserData nachladen, um das Sammeln sensibler Informationen zu unterstützen.

Aikido weist allerdings darauf hin, dass diese Funktionen in der beobachteten Fassung nicht arbeiteten und das Werkzeug zur Datenerfassung beendet wurde, bevor es etwas sammelte. Die Forscher ergänzen jedoch, dass sich all dies manuell über die Shell ausführen lasse. Ox Security beobachtete zudem, dass die Malware lokal prüft, ob ein Bezug zu Russland vorliegt, und sich in diesem Fall selbst beendet.

Zum Zeitpunkt des Berichts waren alle fünf Versionen der vier schädlichen Pakete von npm entfernt. Entwickler sollten jedoch beachten, dass vorhandene Installationen und Lock-Dateien aus dem Zeitraum der Exponierung weiterhin die bösartigen Veröffentlichungen enthalten können. Dieses Zeitfenster dauerte laut Bericht etwa vier Stunden und sieben Minuten, zwischen 07:10 und 11:18 UTC am 14. Juli.

Empfohlen wird, bekannte saubere Versionen festzuschreiben, Lock-Dateien neu zu erzeugen, die versteckte Nutzlast „NodeJS/sync.js“ zu entfernen, alle schädlichen Prozesse zu beenden und Zugangsdaten auf betroffenen Systemen zu rotieren.