Nach Angaben von JFrog wurden neben „rollup-packages-polyfill-core“ und „rollup-runtime-polyfill-core“ noch vier weitere Pakete in die Kampagne einbezogen; sie wurden inzwischen aus dem npm-Register entfernt. Auffällig ist die Arbeitsteilung: „rollup-packages-polyfill-core“ installiert und lädt „swift-parse-stream“, während „rollup-runtime-polyfill-core“ „quirky-token“ nachzieht. Zudem wurde festgestellt, dass „react-icon-svgs“ als zweite Stufe „rollup-plugin-polyfill-connect“ installiert.
JFrog zufolge handelt es sich bei diesen Paketen der zweiten Stufe um nahezu identische SVG-Hilfsprogramme. Sie laden ein JSON-Objekt von JSONKeeper und werten daraus das Feld „model“ aus. Die Sicherheitsfirma bewertet die mehrschichtige Struktur zusammen mit den täuschend ähnlichen Namen, glaubwürdig wirkenden Metadaten, der versteckten Ausführung bei der Installation, Umgebungsprüfungen sowie den Funktionen für Zugangsdiebstahl und Fernzugriff als ähnlich zu früheren npm-Kampagnen, die mit Lazarus in Verbindung gebracht wurden.
Der Angriff beginnt mit einem Base64-kodierten npm-Installationsbefehl für „swift-parse-stream“ beziehungsweise „quirky-token“, der in „rollup-packages-polyfill-core“ oder „rollup-runtime-polyfill-core“ verborgen ist. Die nachgeladenen Pakete geben sich als Werkzeuge zur SVG-Bereinigung aus, kontaktieren aber eine JSON-Keeper-URL, um JavaScript-Schadcode abzurufen und auszuführen.
Der JavaScript-Code prüft zunächst, ob er in Cloud-Entwicklungsumgebungen, Sandboxes, serverlosen Laufzeitumgebungen oder Analyseinfrastrukturen läuft, und soll dort die Ausführung vermeiden. Danach installiert die Malware nötige Abhängigkeiten und verbindet sich mit einem externen Server unter „216.126.236[.]244“, um eine verschlüsselte JavaScript-Nutzlast abzurufen.
Die entschlüsselte Nutzlast fungiert anschließend als Lader für weitere Skripte. Diese erweitern den Fernzugriff auf den kompromittierten Host und unterstützen interaktive Terminalsitzungen, Befehlsausführung, Bildschirmaufnahmen, das Beenden von Prozessen sowie unter Windows Mausbewegungen, Klicks, Scrollen, Tastendrücke und Tastenkombinationen über das Paket „@nut-tree-fork/nut-js“. Hinzu kommen Funktionen zum Diebstahl von Daten aus Webbrowsern und Kryptowährungs-Wallets, zum Sammeln von Dateien mit bestimmten Erweiterungen sowie zum periodischen Erfassen von Zwischenablage-Inhalten.
JFrog sieht Überschneidungen mit OtterCookie. Auch die Nutzung von „@nut-tree-fork/nut-js“ für die Fernsteuerung von Maus und Tastatur war bereits in dem Paket „express-session-js“ zu beobachten, das SafeDep im April 2026 beschrieben hatte. Die Komponente zum Einsammeln von Dateien sucht gezielt nach Editor-Historien von Microsoft Visual Studio Code, Windsurf und Cursor sowie nach Konfigurationen von Entwickler- und KI-Werkzeugen wie AWS, Microsoft Azure, Google Gemini, Anthropic Claude, Foundry, SSH und Z shell (Zsh).
JFrog weist darauf hin, dass Rollup-Plugins oft in Umgebungen geladen werden, die Zugriff auf besonders wertvolle Geheimnisse haben. Die Nutzlast gehe zudem über einen simplen Downloader hinaus: In späteren Phasen verschaffe sie den Angreifern sowohl Sammel- als auch Kontrollfunktionen. Die Veröffentlichung fällt zeitlich mit weiteren von Checkmarx, SafeDep und dem AWS-Sicherheitsforscher Chi Tran entdeckten Supply-Chain-Angriffen zusammen, die auf die Vergiftung von Open-Source-Paketquellen und den Diebstahl wertvoller Daten abzielten.
Nutzer, die eines der genannten Pakete installiert haben, sollten sie laut Quelle von ihren Arbeitsplätzen entfernen, von einer Kompromittierung ausgehen, Zugangsdaten austauschen, die bösartigen ausgehenden Verbindungen blockieren und Abhängigkeitsprüfungen in CI/CD-Pipelines aktivieren, um neu veröffentlichte oder verdächtige Pakete zu markieren.
