← Alle Beiträge

npm malware in imgdecode injiziert Code in Windows

npm malware in imgdecode injiziert Code in Windows

Das npm-malware-Package imgdecode nutzt eine kompilierte Node.js-Komponente, um verschlüsselten shellcode herunterzuladen – also Anweisungen, die direkt im Arbeitsspeicher ausgeführt werden sollen – und ihn in einen Windows-Prozess zu injizieren. SafeDep stellte fest, dass die neun Zeilen umfassende JavaScript-Datei des Packages eine dynamic-link library (DLL) lädt, eine kompilierte Datei mit ausführbarem Code. Wenn eine Windows-Anwendung require('imgdecode') aufruft, ruft die DLL den verschlüsselten Payload von GitHub ab, entschlüsselt ihn und startet ihn innerhalb eines neuen dllhost.exe-Prozesses.

Imgdecode wurde am 30. September 2026 vom Konto malfexteste8 in das npm package registry hochgeladen. Es verzeichnete 979 Downloads und war zum Zeitpunkt der Berichterstattung weiterhin verfügbar. Die neueste Veröffentlichung war Version 1.0.3. SafeDep brachte es mit MALFEX in Verbindung, einer software supply chain-Kampagne, die erstmals von Checkmarx und CloudSEK dokumentiert wurde. Ein unbekannter Betreiber nutzt die Kampagne seit dem 6. August 2023, um über die Konten malfexkkj, malfex_user, malfexteste2, malfexteste3 und malfexteste4 schädliche, auf Windows ausgerichtete Packages zu veröffentlichen.

In der umfassenderen Kampagne waren acht Packages identifiziert worden. Drei fungierten als Loader für Overlord RAT, wobei RAT für remote access trojan steht, also Malware, die einem Betreiber die Kontrolle über einen Computer ermöglicht. Drei weitere, cdn-img-fetch, img-to-native und native-runner, bildeten eine Kette, die einen Node.js data stealer installierte. Ein anderer Weg nutzte einen postinstall hook – Code, der nach der Installation eines Packages automatisch ausgeführt wird –, um einen externen Server zu kontaktieren und ein nicht näher bezeichnetes nachgelagertes binary abzurufen.

Der Betreiber ersetzte entfernte Packages in kurzer Folge. cdn-img-fetch, img-to-native und native-runner 1.0.0 erschienen am 26. September 2026. npm entfernte native-runner und img-to-native am 28. September um 16:06 Uhr UTC. Am 30. September wurde imgbundle 1.0.0 um 03:29 Uhr als Ersatz für img-to-native veröffentlicht, acht Minuten später folgte runhelper 1.0.0 als Ersatz für native-runner. runhelper wurde um 16:13 Uhr zurückgezogen. Die imgdecode-Versionen 1.0.0 und 1.0.1 erschienen anschließend um 22:32 Uhr beziehungsweise 23:07 Uhr. Version 1.0.2 folgte am 1. Oktober um 17:48 Uhr. npm entfernte imgbundle am 7. Oktober um 23:06 Uhr und cdn-img-fetch am 8. Oktober um 13:03 Uhr. imgdecode 1.0.3 wurde am 11. Oktober um 22:09 Uhr veröffentlicht.

Die frühere, aus drei Packages bestehende Stealer-Kette war nicht auf einen installation hook angewiesen. Stattdessen begann die Ausführung, sobald native-runner geladen wurde. cdn-img-fetch lud banner.png aus dem GitHub-Repository cavecrew/proj herunter und extrahierte einen verschlüsselten Datenblock. img-to-native entschlüsselte ihn mit dem key malfexteam2027 und speicherte ein Go-Executable unter %APPDATA%\Microsoft\Windows\node_runtime_helper.exe. native-runner startete diese Datei, die setup.exe, auch movinlike genannt, von 104.234.65[.]75:700 herunterlud.

runhelper wurde als Hilfsprogramm zum Starten nativer Programme aus Node.js präsentiert, tatsächlich sollte es jedoch cdn-img-fetch/.runtime/rt.jpg finden, shellcode aus dem Bild wiederherstellen, ihn in ausführbaren Speicher kopieren und über Koffi ausführen. Koffi ist ein Foreign Function Interface (FFI)-Modul, mit dem JavaScript kompilierten nativen Code aufrufen kann. SafeDep berichtete, dass der Betreiber sechs Stunden nach der Zurückziehung von runhelper imgdecode mit einer kompilierten DLL zur Ausführung des shellcode veröffentlichte. Ab Version 1.0.1 konnte diese DLL den Payload auch abrufen und entschlüsseln. Die Versionen 1.0.1 und 1.0.2 luden weiterhin zuerst imgbundle, während Version 1.0.3 diese Abhängigkeit entfernte und ohne ein weiteres MALFEX-Package betrieben werden konnte.

imgdecode 1.0.0 wartete darauf, dass imgbundle Daten in cdn-img-fetch/.runtime/ ablegte, las die resultierende Datei in den Arbeitsspeicher und übergab sie zur Decodierung an ein natives Node.js-Addon. Das Addon ist eine 64-Bit-Microsoft-Visual-C++-DLL. Es prüft, ob es in einem Entwicklerterminal ausgeführt wird, ruft banner.jpg von cavecrew/proj ab, entschlüsselt den eingebetteten Inhalt mit dem key nif-runtime-2027 und injiziert das Ergebnis in dllhost.exe. SafeDep fand außerdem einen möglichen, vom Betreiber kontrollierten Abschaltmechanismus: Wenn der entschlüsselte Inhalt mit einer JPEG- oder PNG-Dateisignatur beginnt, stoppt die DLL. Die Forscher merkten an, dass die bloße Bereitstellung eines gewöhnlichen Bildes im Allgemeinen dazu führen würde, dass die Entschlüsselung bereits vor dieser Prüfung fehlschlägt.

Das GitHub-Konto cavecrew war nicht mehr zugänglich. Eine auf den 6. Oktober 2026 datierte Aufnahme im Internet Archive zeigte jedoch das Bild, das denselben Go-basierten Downloader enthielt, mit dem der Node.js-Stealer und das movinlike remote access tool von 104.234.65[.]75:700 abgerufen wurden. Die Node.js-Anwendung enthielt außerdem eine .env-Konfigurationsdatei mit der command-and-control (C2)-Adresse 104.234.65[.]75:7007 und einem MALFEX-Lizenz-key. SafeDep erklärte, dies deute darauf hin, dass ein malware builder oder ein Lizenzierungssystem zur Erstellung der Payloads verwendet wurde.

Vor dem Sammeln von Daten prüft die Malware auf virtuelle Maschinen, Sandboxes und Analyseprogramme, darunter Process Monitor und Wireshark. Sie sucht nach seed phrases sowie nach Dateien mit den Endungen .kdbx, .pem, .ppk und .env. Außerdem nimmt sie Chromium-basierte Browser, Discord, Telegram, Kryptowährungs-Wallets und Gaming-Anwendungen wie Steam, Epic Games, Riot, Battle.net, Minecraft und Ubisoft ins Visier. Über eine WebSocket-Verbindung zu ihrem C2-Server kann die Malware Anweisungen zur Ausführung von Befehlen, zu Dateiübertragungen, zur Prozessverwaltung, zum Zugriff auf die Zwischenablage, zu Screenshots sowie zur Steuerung von Maus und Tastatur empfangen. Sie versucht, auf dem Computer zu verbleiben, indem sie einen Registry Run entry hinzufügt und einen scheduled task namens MicrosoftEdgeUpdateService erstellt.

Für Website- und Hosting-Teams besteht die unmittelbare Gefährdung im Windows-Entwicklungs- oder Build-Computer, auf dem eine schädliche Abhängigkeit geladen wird, und nicht in einer Schwachstelle einer bereitgestellten Website. Der Diebstahl von .env-, .pem- und .ppk-Dateien kann Konfigurationsdaten und Zugangsdaten offenlegen, die zur Verwaltung von Anwendungen oder Infrastruktur verwendet werden. Organisationen, die Unterstützung bei betroffenen IT-Umgebungen benötigen, können AEU-I in Betracht ziehen, das sicherheitsorientierte IT-, Infrastruktur- und Beratungsleistungen anbietet.

Wer imgdecode oder die zugehörigen MALFEX-Packages installiert hat, sollte das betroffene Windows-System als potenziell kompromittiert betrachten. Empfohlen wird, es zu isolieren, die dokumentierten Persistenzorte zu untersuchen, Zugangsdaten über ein sauberes Gerät zu ändern und Kryptowährung in neue Wallets zu verschieben, falls seed phrases auf dem Computer gespeichert waren. Allein das Entfernen des npm-Packages beseitigt keine Malware, die möglicherweise bereits ausgeführt wird oder so konfiguriert wurde, dass sie erneut startet.

Auch verfügbar in: EnglishItaliano