Le paquet npm officiel de Jscrambler piégé pour déposer un voleur d'informations écrit en Rust dès l'installation
Des attaquants ont publié cinq versions malveillantes du paquet npm très utilisé de jscrambler sous le compte de mainteneur légitime, chacune exécutant un script de préinstallation déposant un voleur d'informations multiplateforme écrit en Rust sur les machines des développeurs.
- Victime
- Jscrambler
Le 11 juillet 2026, le paquet npm officiel jscrambler — maintenu par la société portugaise de sécurité applicative côté client du même nom — a été piégé pour exécuter un voleur d'informations sur toute machine où il était installé. La version 8.14.0 falsifiée a été publiée directement sur npm sous le compte de mainteneur légitime jscrambler, contournant le processus de publication habituel du projet et pointant vers un compte npm ou une chaîne de compilation compromis plutôt que vers un typosquat ou un paquet sosie.
La version malveillante embarquait un script de préinstallation qui déposait et exécutait un binaire natif dès l'installation du paquet. Le diff du paquet révélait deux nouveaux fichiers sous dist/ : un petit chargeur nommé setup.js, et un fichier appelé intro.js qui — malgré son nom — n'était pas du JavaScript mais un conteneur d'environ 7,8 Mo renfermant trois binaires natifs compressés en gzip, une compilation pour Windows, une pour macOS et une pour Linux. La charge utile était un voleur d'informations écrit en Rust qui passait au crible la machine du développeur à la recherche de secrets et les expédiait vers un serveur de collecte via TLS, ciblant les données de profil des navigateurs Chrome, Brave, Edge et Chromium, l'extension de navigateur Bitwarden et les sessions Steam, tout en installant une persistance via le Planificateur de tâches de Windows et les LaunchAgents de macOS.
Un bras de fer de trois heures
La compromission s'est transformée en un rapide va-et-vient entre l'attaquant et les défenseurs du projet. Socket a signalé la première version malveillante environ six minutes après sa mise en ligne, mais en près de trois heures, l'attaquant a publié cinq versions empoisonnées au total — 8.14.0, 8.16.0, 8.17.0, 8.18.0 et 8.20.0 — entrecoupées de versions saines que les mainteneurs semblent avoir poussées pour tenter de corriger la situation. Cette republication rapide sous un compte de confiance est caractéristique d'une compromission active d'un compte ou d'une chaîne de compilation, où celui qui contrôlait les identifiants s'efforçait de réinjecter la version malveillante plus vite qu'elle ne pouvait être retirée.
Pourquoi c'est important
Un voleur d'informations en préinstallation dans le propre paquet d'un éditeur de sécurité représente un risque particulièrement aigu pour la chaîne d'approvisionnement logicielle : le maliciel s'exécute automatiquement pendant le npm install, avant même que le moindre code ne soit lancé, et il vise précisément les identifiants — secrets stockés dans le navigateur, données de gestionnaire de mots de passe et jetons de session — qu'une machine de développeur compromise peut transformer en accès aux dépôts de code source, aux comptes cloud et aux systèmes d'intégration continue. Survenant au cœur d'une vague de détournements de comptes npm en 2026, l'incident rappelle une fois de plus que les développeurs devraient épingler des versions exactes, désactiver les scripts d'installation lorsque c'est possible, et considérer qu'un paquet issu d'un mainteneur de confiance ne garantit en rien que le compte à son origine n'a pas lui-même été piraté.
Chronologie
La version malveillante jscrambler 8.14.0 est publiée sur npm sous le compte de mainteneur légitime de jscrambler ; Socket la signale environ six minutes plus tard.
En environ trois heures, l'attaquant publie cinq versions malveillantes (8.14.0, 8.16.0, 8.17.0, 8.18.0 et 8.20.0), entrecoupées de versions saines poussées par les mainteneurs pour remédier à l'attaque.
Sources
- thehackernews.comhttps://thehackernews.com/2026/07/compromised-jscrambler-8140-npm-release.html
- safedep.iohttps://safedep.io/jscrambler-npm-supply-chain-compromise/
- stepsecurity.iohttps://www.stepsecurity.io/blog/jscrambler-npm-package-publishes-malicious-preinstall-binary