Une campagne de piratage a publié près de 800 paquets malveillants sur le registre npm en quarante-huit heures. Les fichiers infectent Windows, macOS et Linux dès leur importation dans un projet, sans script d’installation. Le téléchargeur WEL1DROPPER livre ensuite un cheval de Troie d’accès distant et un voleur de données.

Le chercheur Paul McCarty est chercheur pour la plateforme de veille OpenSourceMalware. Il a recensé cette vague entre le 4 et le 6 août 2026, soit quarante-huit heures d'’affilée.
Depuis que npm a changé le fonctionnement des scripts, aucun des paquets ne déclenche son code par un script preinstall ou postinstall, la technique la plus courante pour infecter un poste à l’installation. Ils ne s’exécutent plus automatiquement, sauf accord du développeur.
Les attaquants ont donc trouvé une autre porte d’entrée, le simple chargement du paquet dans le code avec require(), l’instruction d’importation d’une bibliothèque dans un projet JavaScript. Le paquet « checkout-mobile-bnpl » expose une classe avec des méthodes d’initialisation et de configuration, calquées sur un vrai kit de paiement mobile, mais aucune ne traite un paiement réel. Un fichier caché sous son export principal charge aussitôt un téléchargeur. Ce dernier identifie le système d’exploitation de la victime et récupère l’exécutable correspondant, pour Windows, macOS ou Linux.
Quand les serveurs HTTPS échouent, le paquet bascule vers le DNS
Sonatype a aussi analysé la campagne. L’éditeur lui donne un autre nom, Flooding Dropper, et l’associe à Moika, une précédente vague de plus de 250 paquets npm publiée ce printemps. Le paquet interroge d’abord trois serveurs hébergés par Cloudflare Workers. Si cette méthode échoue, il récupère le programme par le DNS à la place. Le DNS sert normalement à traduire un nom de domaine en adresse IP.
Ici, le paquet détourne ce mécanisme pour transporter le programme malveillant lui-même, caché dans le texte des réponses DNS. Le paquet reçoit d'abord le nombre de blocs à récupérer, un chiffre compris entre 1 et 2 000. Il interroge ensuite chaque bloc un par un, avant de les recoller et de les déchiffrer en base64 pour reconstituer le fichier final. Une fois ce fichier écrit dans un dossier temporaire, il s’exécute via /bin/sh sur Linux et macOS, ou cmd.exe sur Windows. Sur macOS, le programme télécharge ensuite un second fichier, beacon_mac.bin, en utilisant HTTPS puis, en cas d’échec, le DNS, exactement comme pour le premier fichier.
Avant de s’exécuter, il vérifie l’absence de débogueurs et de machines virtuelles, signe d’une machine d’analyse plutôt que d’un vrai poste de travail. Il se réinstalle ensuite automatiquement à chaque connexion, en se faisant passer pour un composant Apple, com.Apple.windowserver.helper. Le binaire Linux, compressé avec l’outil UPX, télécharge à son tour Sliver, un outil de prise de contrôle à distance open source. Les équipes de sécurité informatique l’utilisent normalement pour tester leurs propres défenses, mais des attaquants le détournent régulièrement à des fins malveillantes.
Une fois ce programme actif, l’attaquant peut commander la machine à distance et récupérer les jetons npm et les identifiants cloud qui s’y trouvent. Ces secrets volés peuvent ensuite servir à publier de nouvelles versions piégées d’autres paquets, ou à pénétrer d'autres serveurs de l'’entreprise.
Le code contient aussi les noms de deux banques russes, tcsbank.ru et cloudpayments.ru. Les chercheurs ignorent encore s’il s’agit de cibles réelles ou de simples tests de connexion utilisés par les attaquants.

OpenSourceMalware hésite sur l’origine des noms de paquets
On vous rapportait récemment qu’Amazon a averti que certains pirates dissimulent des instructions dans de simples commentaires de code, pour tromper l’outil d’IA chargé de relire un paquet avant sa validation. Pour la vague WEL1DROPPER, OpenSourceMalware pense que la vague WEL1DROPPER a deux origines possibles pour les noms des paquets, une génération aléatoire de typosquatting ou un usage détourné des hallucinations de modèles d'’IA
Pourtant, le nom du paquet « checkout-mobile-bnpl », pris comme exemple par les chercheurs, ne reproduit aucune faute de frappe connue. Il imite plutôt un vrai service de paiement fractionné, un nom trop cohérent pour sortir d’une hallucination d'’IA.
D’’autres campagnes récentes confirment que npm reste une cible privilégiée. Unit 42, l’équipe de renseignement sur les menaces de Palo Alto Networks, a recensé une dizaine de paquets npm. Une fois installés, ils téléchargent un voleur de cryptomonnaies et un cheval de Troie d’accès distant, via une fonction exportée, getPlugin, chargée de construire l’adresse de téléchargement. D'autres paquets, répartis cette fois entre npm et l’index Python PyPI, volent des identifiants cloud ou détournent des clés de portefeuilles Solana via Telegram.
Participer à la discussion
Partagez votre avis avec la communauté Clubic.