veilletech.fr
18 oct. Feed du jour
#03 SÉCURITÉ Faille

MALFEX : imgdecode, le paquet npm qui revient

Désactiver les scripts d'installation ne suffit plus : le code attend le require.

Après le retrait de deux de ses paquets par npm, l'opérateur de la campagne MALFEX en a republié des remplaçants en moins de deux jours, dont imgdecode, encore en ligne en version 1.0.3 avec 979 téléchargements. Sous Windows, une DLL télécharge du code chiffré depuis GitHub et l'injecte dans dllhost.exe, avant un voleur d'identifiants et un outil d'accès à distance.

3 min de lectureintermédiairevidéo 1:24
Partager
Sommaire6 sections
  1. Ce qui se passe
  2. Comment imgdecode charge
  3. Ce qui arrive ensuite
  4. Que faire
  5. Limites
  6. À retenir

Ce qui se passe

La campagne MALFEX, racontée ici le 8 octobre, continue. Chaque fois que npm retire un paquet, l'opérateur en remet un autre. imgdecode a été publié le 30 septembre 2026 par le compte malfexteste8 ; il est toujours en ligne en version 1.0.3, avec 979 téléchargements au moment de l'article. SafeDep, dont la source reprend l'analyse, le décrit ainsi : un fichier JavaScript de neuf lignes charge une DLL Windows qui récupère du shellcode chiffré sur GitHub.

Date (UTC) Événement
26 septembre cdn-img-fetch, img-to-native et native-runner 1.0.0 publiés
28 septembre, 16:06 npm retire native-runner et img-to-native
30 septembre, 03:29 et 03:37 imgbundle remplace img-to-native, runhelper remplace native-runner
30 septembre, 16:13 runhelper est dépublié
30 septembre, 22:32 imgdecode 1.0.0, suivi des 1.0.1 puis 1.0.2 (1er octobre)
7 et 8 octobre npm retire imgbundle, puis cdn-img-fetch
11 octobre, 22:09 imgdecode 1.0.3, sans dépendance à un autre paquet MALFEX

Comment imgdecode charge

Quand un programme appelle require('imgdecode') depuis une console Windows, la DLL 64 bits (un addon Node.js compilé) vérifie qu'elle tourne dans un terminal de développeur. Elle télécharge ensuite banner.jpg depuis le dépôt GitHub cavecrew/proj, aujourd'hui inaccessible, déchiffre la charge avec la clé nif-runtime-2027 et l'injecte dans un nouveau processus dllhost.exe. Si le contenu déchiffré commence par une signature JPEG ou PNG, la DLL s'arrête : SafeDep en déduit que l'opérateur peut désactiver le chargeur à distance. Une capture d'archive du 6 octobre montre que l'image est le même téléchargeur Go que dans la chaîne précédente.

Il n'y a pas de script d'installation : le code s'exécute au chargement du module. Désactiver les hooks postinstall ne protège donc pas.

Ce qui arrive ensuite

Le téléchargeur récupère un voleur Node.js, setup.exe alias movinlike, sur 104.234.65.75. La source écrit le port 700 d'un côté et 7007 de l'autre pour le serveur de commande : elle se contredit, à vérifier chez SafeDep. Le voleur :

Que faire

Chercher les onze noms de la campagne, ceux du 8 octobre compris, dans les fichiers de verrouillage :

Terminal
grep -nwE 'cdn-img-fetch|img-to-native|native-runner|runhelper|imgbundle|imgdecode|function-flag|function-color|tlxbnhd|tldriver|mxdriver' \
  package-lock.json pnpm-lock.yaml yarn.lock 2>/dev/null

Sur une machine Windows où l'un d'eux a pu tourner :

PowerShell
Get-ScheduledTask -TaskName MicrosoftEdgeUpdateService
Test-Path "$env:APPDATA\Microsoft\Windows\node_runtime_helper.exe"

En cas de résultat positif, la source recommande d'isoler la machine, de contrôler les entrées de persistance, de renouveler les identifiants et, si des phrases de récupération y étaient stockées, de transférer les fonds vers de nouveaux portefeuilles.

Limites

L'attaque vise Windows. Les paquets antérieurs utilisaient la clé malfexteam2027 pour le même type de chaîne. Tout vient de rapports de SafeDep, Checkmarx et CloudSEK lus par l'intermédiaire de The Hacker News.

Source : MALFEX npm Package 'imgdecode' Hides Shellcode Loader in Windows Native Addon, The Hacker News, 17 octobre 2026.