Attaque de la chaîne d’approvisionnement NPM : paquets compromis avec des milliards de téléchargements hebdomadaires

Le 8 septembre 2025, plusieurs paquets npm extrêmement populaires — notamment chalk, debug, ansi-styles, color-convert, strip-ansi et supports-color — ont été compromis et republiés avec du code malveillant. Ces paquets constituent des dépendances fondamentales dans l’écosystème JavaScript et totalisent ensemble des milliards de téléchargements hebdomadaires. Les versions malveillantes sont restées en ligne sur le registre npm pendant environ 2,5 heures avant d’être supprimées. En raison de la popularité de ces paquets et de leur utilisation en tant que dépendances transitives, l’exposition potentielle est extrêmement large, touchant à la fois les développeurs d’applications et les consommateurs en aval.

Date2025-09-09 13:17:45

Résumé technique

La compromission provient d’une campagne de phishing ciblée contre le mainteneur des paquets. Les attaquants ont envoyé des e-mails imitant le support npm, utilisant un faux domaine (npmjs.help) pour tromper le mainteneur et obtenir ses identifiants. Une fois l’accès au compte compromis, les attaquants ont pu publier des versions malveillantes des paquets concernés directement sur le registre npm.

Les paquets compromis contenaient du code malveillant obfusqué qui interceptait à la fois le trafic réseau et les API des applications, ciblant principalement les opérations liées aux cryptomonnaies, via :

  • Le hook des API liées aux cryptomonnaies ;
  • La détection d’adresses de portefeuilles et de détails de transactions ;
  • Le remplacement des destinations légitimes des portefeuilles par des adresses contrôlées par les attaquants ;

Paquets compromis et versions associées :

Nom Version
ansi-regex6.2.1
ansi-styles6.2.2
backslash0.2.1
chalk5.6.1
chalk-template1.1.1
color-convert3.1.1
color-name2.0.1
color-string2.1.1
debug4.4.2
error-ex1.3.3
has-ansi6.0.1
is-arrayish0.3.3
simple-swizzle0.2.3
slice-ansi7.1.1
strip-ansi7.1.1
supports-color10.2.1
supports-hyperlinks4.1.1
wrap-ansi9.0.1

Recommandations

  1. Identifier et supprimer les versions compromises : Scanner la présence des paquets et des versions listées ci-dessus et vider les caches de npm/yarn/pnpm.
  2. Appliquer l’utilisation des fichiers de verrouillage (lock files) : Verrouiller les versions (package-lock.json, yarn.lock, pnpm-lock.yaml) pour garantir des versions cohérentes et vérifiées des dépendances entre les environnements et éviter les installations accidentelles de mises à jour malveillantes.
  3. Renforcer la sécurité de la chaîne d’approvisionnement (supply chain) : Mettre en œuvre une surveillance rigoureuse des dépendances, utiliser des SBOM pour suivre les expositions éventuelles et mettre en œuvre l’authentification à deux facteurs (2FA) avec des clés matérielles pour les comptes des mainteneurs.

[Callforaction-THREAT-Footer]

Leave a Reply

Your email address will not be published. Required fields are marked *