Der Loader von „indexed-btree" steckt laut Checkmarx in der Methode „BTree.prototype.set()". Wird sie aufgerufen, lädt sie „sharedLoad.min.js" nach – ein JavaScript-Payload, das die verschleierte erste Stufe der Schadsoftware enthält.

Diese erste Stufe erstellt einen Fingerabdruck des Hosts und meldet die Daten an einen fest einprogrammierten Slack-Kanal sowie einen Telegram-Bot. Anschließend kommt die EtherHiding-Technik zum Einsatz: Verschlüsselte Blobs für die nächste Stufe werden von einem Smart Contract im Sepolia-Testnetz abgerufen und zur zweiten Stufe zusammengesetzt. Zum Abschluss löscht die Schadsoftware ihre Artefakte und entfernt den Auslöser aus dem Paketcode, um Spuren zu verwischen.

Nach Angaben von Checkmarx gehört „indexed-btree" zu einer ganzen Reihe von npm-Paketen derselben Operation, die inzwischen sämtlich aus der Registry entfernt wurden. Entwicklern rät das Unternehmen, sich nicht allein auf Prüfungen zur Installationszeit und das Blockieren von Lifecycle-Skripten zu verlassen, sondern zusätzlich das Laufzeitverhalten zu analysieren.

Anzeige

„Besonders bedeutsam an dieser Kampagne ist, dass sie zeigt, wie Angreifer sich fast unmittelbar an stärkere Abwehrmaßnahmen in der Software-Lieferkette anpassen", erklärte Ensar Seker, CISO bei SOCRadar, gegenüber The Hacker News. Npm habe die Sicherheit zur Installationszeit durch die Einschränkung von Lifecycle-Skripten verbessert, doch Angreifer könnten die Ausführung schlicht in legitim wirkende Laufzeitfunktionen verlagern. Sicherheitsmaßnahmen veränderten das Verhalten der Angreifer, beseitigten aber nicht die zugrunde liegende Bedrohung; nötig seien gestaffelte Kontrollen, die schädliches Verhalten vor der Installation, während der Ausführung und nach dem Deployment erkennen.

Parallel meldet das Unternehmen Socket, es habe Schadcode in der Version „dev-main" des Packagist-Pakets „visanduma/nova-two-factor" mit über 700.000 kumulierten Downloads entfernt. Der Fall gehört zu einer laufenden, mit Nordkorea in Verbindung gebrachten Kampagne namens PolinRider.

Charakteristisch für PolinRider ist die Übernahme von Entwicklerkonten, um Schadcode in Quellcode-Repositories einzuschleusen. Als Auslöser der Infektionskette dienen alltägliche Entwicklerhandlungen wie das Klonen eines Repositories oder dessen Öffnen in einer IDE. Dazu kommen das Umschreiben der Git-Historie, das Verstecken von Payloads in Konfigurations- oder Schriftdateien, bösartige Auto-Run-Tasks in VS Code sowie Takedown-resistente Verfahren wie EtherHiding und dessen auf Tarnung ausgelegter Nachfolger NullReceiver zur gestaffelten Auslieferung über die Blockchain.

„Die Analyse der GitHub-Organisation Visanduma deutet darauf hin, dass deren Repositories seit Mitte Juni 2026 kompromittiert sind", so Socket-Forscher Karlo Zanki; eingebracht worden seien die Änderungen über das Entwicklerkonto „LaHiRu". Neu ist das direkte Einfügen stark verschleierten JavaScripts in „index.php" und dessen Ausführung über die PHP-Funktion „shell_exec()" – ein Hinweis darauf, dass die Angreifer ihre Ausführungswege dem jeweils kompromittierten Projekt anpassen, statt einen festen Auslieferungspfad zu nutzen.

Laut Socket bestätigt die Aktivität ein Grundmuster von PolinRider: Die Kompromittierung der Paket-Registry sei meist Folge eines umfassenderen Git-basierten Einbruchs und nicht das eigentliche Ziel. Die Betreiber nutzten gewöhnliche Zusammenarbeit am Quellcode, um Entwicklerumgebungen zu erreichen, sich in weitere Repositories auszubreiten und dauerhaften Zugang zu halten.