Skip to main content

Attaque de la chaîne logistique npm via la compromission d’un mainteneur open source

Écrit par
Introducing open source security runtime monitoring

8 septembre 2025

0 minutes de lecture

Le lundi 8 septembre, un développeur open source très réputé, ~qix, a été compromis à la suite d’un e-mail d’hameçonnage. ~qix est l’auteur et le mainteneur de nombreux packages npm populaires. Il a été victime de cette attaque après avoir répondu à un message envoyé depuis l’adresse e-mail support [at] npmjs [dot] help.

L’attaquant a ainsi pris le contrôle de son compte npm et a pu publier des versions malveillantes de packages auxquels Qix avait un accès privilégié.

Mise à jour du 9 septembre : ajout des nouveaux packages npm concernés.

Mise à jour du 10 septembre : ajout d’un nouveau package npm concerné.

Que s’est-il passé ?

Le développeur open source a été victime d’un e-mail d’hameçonnage qui a permis à un attaquant d’accéder à son compte npm. L’attaquant a pu injecter du code malveillant dans de nombreux packages npm très populaires, déclenchant ainsi une attaque de la chaîne logistique.

À ce jour, il s’agit du seul mainteneur open source connu à avoir été ciblé. Toutefois, d’autres développeurs très recherchés pourraient également avoir été touchés sans que cela ait encore été signalé.

Comment l’attaque a-t-elle été menée ?

L’attaquant a eu recours à l’ingénierie sociale pour envoyer un e-mail d’hameçonnage à un développeur open source très actif. L’e-mail a incité le développeur à s’authentifier et à contourner les contrôles de sécurité, donnant ainsi accès à son compte à l’attaquant. Celui-ci a alors pu injecter un logiciel malveillant dans n’importe lequel des packages open source populaires pour lesquels le développeur disposait d’autorisations privilégiées, puis publier de nouvelles versions contenant le logiciel malveillant.

Lorsqu’il s’exécute dans un navigateur, le code malveillant surveille le trafic réseau et cible les transactions en cryptomonnaies. Injecté dans les packages, il s’active dès qu’un portefeuille Web3 est présent. Il intercepte alors et modifie toute transaction comportant une valeur en ETH pour la rediriger vers une autre adresse, probablement contrôlée par l’attaquant. Le code malveillant surveille également les transactions d’échange et de transfert afin de les altérer.

Quelles données étaient ciblées ?

L’attaquant ciblait les portefeuilles de cryptomonnaies accessibles depuis les navigateurs des utilisateurs afin d’en dérober les fonds en redirigeant vers ses propres adresses les transactions ou autorisations signées par les utilisateurs. À ce jour, on ne pense pas que l’attaque ait visé d’autres données.

Packages et versions concernés

Chronologie de l’attaque

~13 h 00 UTC : publication du premier lot de packages compromis détectés

14 h 16 UTC : le développeur est alerté d’une possible compromission de son compte sur le réseau social Blue Sky

15 h 16 UTC : le développeur confirme la compromission de son compte dans un post sur Blue Sky et signale l’incident à npm

17 h 17 UTC : npm reconnaît la faille et s’emploie à retirer les packages compromis

19 h 59 UTC : npm informe le développeur que toutes les versions des packages concernés ont été retirées

Indicateurs de compromission (IoC)

  • L’utilisateur GitHub SindreSorhus a partagé une commande rapide pour vérifier si ce logiciel malveillant se trouve dans votre arbre de dépendances :

brew install rg

rg -uu --max-columns=80 --glob '*.js' _0x112fa8 
  • Si vous gérez des packages et avez reçu un e-mail de support [at] npmjs [dot] help et suivi ses instructions, il est probable que vous soyez également concerné.

Que devez-vous faire ?

  1. L’incident est toujours en cours. Suivez les mises à jour de cet article et celles du développeur Qix sur GitHub.

  2. Vérifiez si le logiciel malveillant se trouve dans votre arbre de dépendances à l’aide du script partagé par Sindre Sorhus

Utilisateurs de Snyk

Vous pouvez utiliser Snyk SCA et Snyk SBOM pour détecter et surveiller les projets dans toute votre organisation.

  1. Si aucun test n’a été exécuté depuis la publication des avis, relancez un test.

  2. Les projets CLI doivent faire l’objet d’une nouvelle surveillance afin de détecter l’arbre de dépendances actuel.

Rapports Snyk

Un rapport consacré à cet ensemble de vulnérabilités est disponible dans la liste des rapports « Featured Zero-Day » de Snyk. Si vous avez un forfait Enterprise, vous pouvez accéder à ce rapport en cliquant sur « Rapports » dans le menu de navigation de gauche (des rapports sont disponibles aux niveaux Groupe et Organisation). Par défaut, le rapport « Détail des problèmes » s’affiche. Cliquez sur le menu déroulant « Modifier le rapport » à côté du titre, puis sélectionnez « Featured Zero-Day ». Dans l’écran suivant, sélectionnez le rapport « npm Phishing Supply Chain Attack » dans la liste déroulante Zero-Day.

Tableau de bord des rapports de vulnérabilités zero-day filtré sur une attaque de phishing visant la chaîne d’approvisionnement npm, avec zéro problème ouvert et trois problèmes résolus

À propos des attaques contre la chaîne logistique

Cet incident s’ajoute à plusieurs autres incidents de sécurité récents de même nature. Nous avons déjà vu des attaques visant des environnements CI et des comptes de mainteneurs, permettant de détourner des publications :

Demandez une démonstration en direct de Snyk pour sécuriser l’open source

Échangez avec nos experts en sécurité pour découvrir comment Snyk vous aide à utiliser l’open source en toute sécurité