Une nouvelle attaque de la chaîne d’approvisionnement logicielle secoue l’écosystème JavaScript. Des chercheurs en cybersécurité ont découvert qu’un ver npm Keyv s’est propagé à plusieurs centaines de paquets publiés sur le registre npm après la compromission de keyv@6.0.0.
L’incident, révélé par les équipes de SafeDep puis confirmé par Aikido Security, montre comment un seul paquet largement utilisé peut devenir le point de départ d’une contamination massive de dépendances. Selon les premières analyses, le code malveillant visait principalement les développeurs en recherchant des jetons GitHub, des identifiants cloud, des clés SSH ainsi que des environnements de développement tels que Claude Code et Visual Studio Code.
Les détails techniques de cette campagne sont publiés par les chercheurs de SafeDep, qui ont suivi la propagation du malware au sein de l’écosystème npm.
Une propagation bien plus importante que prévu
Au départ, l’infection semblait limitée au paquet Keyv, une bibliothèque open source largement utilisée pour la gestion du stockage clé-valeur dans les applications Node.js.
Cependant, les investigations ont rapidement révélé une propagation beaucoup plus large.
SafeDep indique avoir confirmé 353 versions malveillantes réparties sur 79 paquets. En poursuivant ses analyses, l’entreprise a identifié une empreinte encore plus vaste comprenant 442 versions appartenant à 353 paquets différents.
Quelques heures plus tard, les chercheurs d’Aikido Security ont annoncé avoir recensé au moins 868 paquets compromis, laissant penser que l’attaque s’est propagée bien au-delà des premières estimations.
Cette évolution illustre la rapidité avec laquelle une attaque contre une dépendance populaire peut contaminer l’ensemble d’un écosystème logiciel.
Les développeurs étaient directement visés
Contrairement à de nombreuses attaques visant les utilisateurs finaux, cette campagne cible principalement les postes de travail des développeurs.
Le code malveillant recherche notamment :
- les clés SSH utilisées pour accéder aux serveurs ;
- les Personal Access Tokens GitHub ;
- les identifiants AWS, Azure et Google Cloud ;
- les fichiers de configuration contenant des secrets ;
- les environnements de Claude Code ;
- les extensions et configurations de Visual Studio Code.
L’objectif est de récupérer des informations permettant ensuite de compromettre d’autres projets logiciels ou infrastructures cloud.
Les bonnes pratiques de protection des secrets sont d’ailleurs rappelées dans la documentation officielle de GitHub Secret Scanning, qui aide à détecter les identifiants exposés dans les dépôts.
Une attaque typique de la supply chain
Cette campagne s’inscrit dans la catégorie des attaques de supply chain, devenues l’une des principales menaces pour les développeurs.
Au lieu d’attaquer directement une entreprise, les cybercriminels compromettent un composant open source largement utilisé. Dès qu’une nouvelle version est publiée, les projets qui mettent automatiquement leurs dépendances à jour téléchargent le code malveillant sans s’en rendre compte.
Le fonctionnement du registre npm favorise cette propagation lorsque les dépendances sont mises à jour automatiquement dans les pipelines CI/CD.
Ces dernières années, plusieurs incidents majeurs ont démontré l’efficacité de cette méthode, notamment les compromissions de bibliothèques JavaScript populaires et les attaques visant les chaînes de développement.
Claude Code et VS Code également concernés
L’un des aspects les plus préoccupants concerne la recherche ciblée d’informations liées aux assistants de développement basés sur l’intelligence artificielle.
Selon les chercheurs, le malware inspecte certains répertoires susceptibles de contenir des configurations de Claude Code, des extensions de Visual Studio Code ou d’autres environnements utilisés quotidiennement par les développeurs.
Cette évolution confirme que les cybercriminels adaptent désormais leurs outils aux nouveaux usages liés à l’IA générative.
Microsoft recommande d’ailleurs de sécuriser les environnements de développement grâce aux mécanismes de protection présentés dans la documentation de Visual Studio Code Security.
Comment vérifier si un projet est affecté
Les entreprises utilisant des applications Node.js sont invitées à vérifier rapidement leurs dépendances.
Les experts recommandent notamment de :
- auditer les fichiers package-lock.json et package.json ;
- rechercher les versions compromises des bibliothèques concernées ;
- faire tourner un outil d’analyse des dépendances ;
- révoquer immédiatement les jetons GitHub et les clés cloud susceptibles d’avoir été exposés ;
- contrôler les journaux d’accès afin de détecter toute activité anormale.
Les mainteneurs peuvent également consulter les alertes publiées par GitHub Security Advisories afin de suivre les mises à jour de sécurité liées aux bibliothèques concernées.
Pourquoi cette attaque est importante
Cet incident rappelle que la sécurité des logiciels ne dépend plus uniquement du code développé en interne.
Aujourd’hui, une simple dépendance open source peut être utilisée pour compromettre des milliers d’applications, de pipelines CI/CD et de postes de développement dans le monde entier.
À mesure que les projets s’appuient sur un nombre croissant de bibliothèques externes, la surveillance de la chaîne d’approvisionnement devient un élément essentiel de toute stratégie de cybersécurité.
Conclusion
L’attaque du ver npm Keyv constitue l’un des incidents de supply chain les plus marquants de l’année dans l’écosystème JavaScript. En compromettant des centaines de paquets, les attaquants ont cherché à dérober des secrets de développement, des identifiants cloud et des accès GitHub.
Les organisations utilisant Node.js, npm, Claude Code ou Visual Studio Code doivent auditer leurs dépendances, appliquer les correctifs disponibles et renouveler immédiatement les identifiants susceptibles d’avoir été exposés afin de réduire les risques de compromission.
SOURCE :


