Cybersécurité
Attaque de la chaîne d’approvisionnement NPM: Ce qui s’est passé et comment la corriger

L’industrie de la cryptomonnaie et le monde en général ont récemment vécu un sursaut lorsque des experts en sécurité ont identifié une attaque de la chaîne d’approvisionnement ciblant l’écosystème Node.js qui avait déjà compromis jusqu’à 18 packages npm.
C’est parce que ces quelques packages enregistrent des milliards de téléchargements chaque semaine.
Les packages logiciels sont utilisés pour distribuer des logiciels tiers. Souvent récupérés depuis une source externe via un gestionnaire de packages, ils comprennent généralement le code source, des bibliothèques, de la documentation et d’autres fichiers nécessaires à la construction et à l’exécution du logiciel.
Aujourd’hui, un package contenant un logiciel malveillant se fait passer pour un package légitime, alors qu’en réalité il est malveillant avec l’intention d’infecter les logiciels. Une fois introduit dans un système, le malware du package malveillant peut modifier des fichiers, voler des données, et même prendre le contrôle d’un système entier pour faire ce que l’attaquant souhaite.
Alors que d’autres grands écosystèmes open source comme Python et .NET sont tout aussi vulnérables aux attaques, la large utilisation de JavaScript le rend particulièrement exposé aux cybercriminels.
Node.js est un environnement d’exécution open source construit sur JavaScript qui permet aux développeurs d’exécuter leur code en dehors du navigateur web.
Traditionnellement, le langage de programmation interprété principalement connu pour rendre les pages web interactives était principalement utilisé pour le développement web côté client dans les navigateurs, mais Node.js a étendu l’utilisation de JavaScript au côté serveur et à d’autres applications.
Avec Node.js, les développeurs peuvent créer des applications rapides et évolutives comme des serveurs web, des API, des outils, et plus encore.
Il bénéficie d’un vaste écosystème de bibliothèques et d’outils open source disponibles via npm, ce qui simplifie le développement et fournit des solutions pour diverses fonctionnalités.
Node Package Manager, ou npm, est un outil clé du développement JavaScript, qui est utilisé pour trouver, construire et gérer les packages de code. Il aide à gérer les dépendances, à faciliter la collaboration et à rationaliser les flux de travail.
Ce registre de logiciels le plus grand au monde contient plus de 3 millions de packages de code et est entièrement gratuit.
Tout le monde peut télécharger tous les packages logiciels publics npm sans avoir besoin de s’inscrire. Les développeurs open source utilisent npm pour partager et emprunter des logiciels, tandis que de nombreuses organisations l’utilisent pour gérer le développement privé.
Pour installer npm sur votre ordinateur, vous devez d’abord installer Node.js.
Le gestionnaire de packages pour JavaScript est maintenu par npm, Inc., une filiale de GitHub, la principale plateforme de développement logiciel au monde, qui appartient à Microsoft depuis 2018, lorsque le géant technologique l’a acquis pour 7,5 milliards de dollars afin d’autonomiser les développeurs.
La semaine dernière, l’outil sur lequel plus de 17 millions de développeurs dans le monde comptent a été compromis, créant une panique sur Internet, bien que seulement pendant un court instant, les experts l’ayant détectée rapidement, et les attaquants n’ayant pu voler plus de 50 $ . Voici ce qui s’est passé !
Ce qui s’est passé lors de l’attaque de la chaîne d’approvisionnement NPM (sept. 2025)
Dans la vaste attaque de la chaîne d’approvisionnement qui a eu lieu dans l’écosystème JavaScript, des hackers ont compromis une série de packages npm avec un malware. L’objectif de l’attaque était de voler des actifs numériques à des utilisateurs sans méfiance.
En particulier, le compte npm du développeur « qix » a été piraté.
Qix est un compte de mainteneur open source qui a été compromis par une attaque de phishing. Cela a permis aux attaquants d’infecter 18 packages npm populaires avec du code malveillant. Ensemble, ces packages sont téléchargés des centaines de millions de fois chaque semaine car ils sont intégrés dans des frameworks, des outils de développement et des services de production.
Les packages affectés comprennent chalk, debug, color-name, wrap-ansi et ansi-styles, qui sont parmi les plus populaires, les packages npm moins connus affectés étant backslash, chalk-template et has-ansi.
Swipe to scroll →
| Package | Version(s) compromisée(s) | Action |
|---|---|---|
| debug | 4.4.2 | Épingler à une version antérieure à 4.4.2 ; réinstaller ; analyser les journaux de construction |
| chalk | 5.6.1 | Épingler à une version antérieure à 5.6.1 ; redéployer une construction propre |
| ansi-styles | 6.2.2 | Épingler à une version antérieure à 6.2.2 ; auditer les dépendances en aval |
| ansi-regex | 6.2.1 | Épingler à une version antérieure à 6.2.1 |
| strip-ansi | 7.1.1 | Épingler à une version antérieure à 7.1.1 |
| wrap-ansi | 9.0.1 | Épingler à une version antérieure à 9.0.1 |
| color, color-convert, color-string, color-name | 5.0.1 / 3.1.1 / 2.1.1 / 2.0.1 | Épingler aux versions précédemment listées ; re-verrouiller et reconstruire |
| has-ansi, supports-color, slice-ansi | 6.0.1 / 10.2.1 / 7.1.1 | Épingler aux versions précédemment listées |
| backslash, is-arrayish, error-ex, simple-swizzle, chalk-template, supports-hyperlinks | 0.2.1 / 0.3.3 / 1.3.3 / 0.2.3 / 1.1.1 / 4.1.1 | Épingler aux versions précédemment listées |
| duckdb, @duckdb/node-api, @duckdb/node-bindings, @duckdb/duckdb-wasm | 1.3.3 / 1.3.3 / 1.3.3 / 1.29.2 | Éviter les versions listées ; attendre les mises à jour du fournisseur |
Tous les packages qui ont été affectés ont depuis été supprimés par le registre npm. En compromettant un mainteneur open source de grande valeur, l’attaque a exploité la confiance dans l’écosystème des logiciels open source (OSS), car les développeurs n’auditent pas chaque dépendance qu’ils utilisent. Ce qu’ils font, c’est se fier à leur utilisation et à leur réputation, ainsi qu’à la sécurité des registres.

Afin de compromettre les packages, le hacker a suivi la voie du phishing. L’attaquant a d’abord lancé une campagne de phishing pour détourner le compte d’un mainteneur de package npm, puis a injecté son code malveillant dans les packages npm avant de télécharger leurs versions compromises.
Le développeur Josh Junon a été la victime d’un e‑mail de phishing faisant partie d’une campagne plus large imitant npm. Ainsi, les attaquants ont utilisé un site de phishing qui imitait la page de connexion de npm pour voler ses identifiants. Dès qu’ils ont accédé, ils ont verrouillé Junon en modifiant l’adresse e‑mail associée à son compte npm.
“Salut, oui j’ai été compromis. Désolé à tous, très embarrassant,” a écrit Junon sur HackerNews, confirmant l’incident. Il a expliqué avant de préciser que seul npm était affecté:
“Cela semblait légitime à première vue. Pas d’excuses, j’avais eu une longue semaine et une matinée panique et j’essayais juste de cocher une tâche de ma liste. J’ai fait l’erreur de cliquer sur le lien au lieu d’aller directement sur le site.”
L’e‑mail de phishing provenait de support [at] npmjs [dot] help et utilisait une tactique de peur pour inciter Junon à cliquer sur le lien, qui l’a redirigé vers le site de phishing.
Se faisant passer pour npm, les attaquants lui ont demandé de mettre à jour ses informations d’authentification à deux facteurs, prétendant faire partie d’un « engagement continu pour la sécurité des comptes », et indiquant qu’ils demandent la même chose à tous les utilisateurs.
“Nos dossiers indiquent qu’il s’est écoulé plus de 12 mois depuis votre dernière mise à jour 2FA,” indique l’e‑mail de phishing, ajoutant que ceux dont les « identifiants 2FA obsolètes seront temporairement verrouillés à partir du 10 septembre 2025, afin de prévenir tout accès non autorisé ».
Le même e‑mail a également été utilisé pour cibler d’autres mainteneurs de packages et développeurs.
Étant donné la large utilisation des packages affectés, cela aurait pu devenir un incident majeur si cela n’avait pas été géré aussi rapidement.
Comme Charlie Erickson d’Aikido Security l’a signalé dans un rapport, d’innombrables sites Web ont évité des dommages très graves grâce à cette attaque, les packages npm contenant un morceau de code qui s’exécutait côté client d’un site.
“Ce malware est essentiellement un intercepteur basé sur le navigateur qui détourne à la fois le trafic réseau et les API d’application,” a-t-il déclaré dans son analyse de l’attaque. “Ce qui le rend dangereux, c’est qu’il fonctionne à plusieurs niveaux: il modifie le contenu affiché sur les sites Web, altère les appels d’API et manipule ce que les applications des utilisateurs croient signer. Même si l’interface semble correcte, la transaction sous-jacente peut être redirigée en arrière‑plan.”
Le code malveillant a été conçu pour voler des cryptomonnaies. L’attaquant analyse les chaînes à la recherche d’adresses de portefeuilles crypto, exposant ainsi les personnes travaillant sur des applications liées aux cryptos.
Le malware fonctionnait discrètement dans le navigateur sans que l’utilisateur ne le sache, réécrivant les adresses de portefeuille et redirigeant les fonds vers des comptes contrôlés par l’attaquant. Il détourne et manipule directement les transactions sur Bitcoin (BTC ), Ethereum (ETH ), Solana (SOL ), Tron (TRX ), Litecoin (LTC ) et Bitcoin Cash (BCH ) sur un système compromis.
Pour ce faire, le code malveillant surveillait les interfaces de programmation d’applications du navigateur telles que fetch et les interfaces de portefeuille comme window.ethereum.
Le code malveillant « intercepte silencieusement les activités crypto et Web3 dans le navigateur, manipule les interactions de portefeuille et réécrit les destinations de paiement afin que les fonds et les approbations soient redirigés vers des comptes contrôlés par l’attaquant sans aucun signe évident pour l’utilisateur », a déclaré Erickson.
Une fois terminé, le malware efface ses traces tout en restant en arrière‑plan pour intercepter d’éventuelles transactions futures sur le réseau de la victime non méfiante.
Compte tenu de la gravité de l’attaque, Charles Guillemet, le CTO du fournisseur de portefeuilles matériels Ledger, a averti les utilisateurs de crypto d’être prudents lors de la confirmation des transactions on‑chain. Les packages affectés, a-t-il signalé dans le post, ont déjà été téléchargés plus d’un milliard de fois.
L’attaque de chaîne d’approvisionnement à grande échelle, qu’il a partagée avec la communauté, cible les portefeuilles logiciels crypto avec la charge malveillante « échange silencieux d’adresses crypto à la volée pour voler des fonds ».
“Si vous utilisez un portefeuille matériel, faites attention à chaque transaction avant de signer et vous êtes en sécurité. Si vous n’utilisez pas de portefeuille matériel, abstenez‑vous de faire des transactions on‑chain pour le moment.”
– Guillemet
Pendant ce temps, 0xngmi, le fondateur pseudonyme de DefiLlama, une plateforme d’analyse crypto, a publié sur X pour partager que « la zone d’impact effective est bien plus petite que « tous les sites Web » », car seuls les projets qui ont été mis à jour après la publication du package npm infecté par le malware peuvent être à risque. Il a toutefois ajouté « il est simplement plus sûr d’éviter d’utiliser les sites crypto jusqu’à ce que cela se calme et qu’ils nettoient les mauvais packages ».
En fin de compte, les hackers n’ont pu voler que 50 $ de cryptomonnaies lors d’une attaque de chaîne d’approvisionnement aussi massive. Les 50 $ comprennent de l’Ether et une série de meme coins comme Brett et Andy, entre autres.

Cependant, c’était plus de la chance que quoi que ce soit, comme la plateforme d’intelligence crypto Security Alliance l’a noté sur X :
“Cela aurait pu être bien pire. Une porte dérobée déployée furtivement ciblant les machines des développeurs avec un focus sur la persistance aurait pu rester sous le radar pendant une durée indéterminée.”
Depuis lors, de nombreuses applications crypto telles que Aave, Uniswap, Ledger, Jupiter, MetaMask, Phantom, Blast et d’autres ont informé leurs utilisateurs qu’elles sont à l’abri de l’attaque npm.
Bien que l’attaque ait échoué, elle rappelle fortement aux développeurs que, pour une sécurité maximale, ils doivent aller au-delà de leur propre base de code. Même les dépendances logicielles qui ont été fiables et largement utilisées peuvent également être compromises à tout moment.
Ici, les plateformes de codage comme GitHub et npm doivent également faire davantage pour garantir la sécurité des packages largement utilisés.
“Les packages les plus populaires devraient nécessiter une attestation prouvant qu’ils proviennent d’une provenance fiable et non simplement d’un endroit aléatoire sur Internet.”
– Eriksen

Les compromissions de dépôts de code, après tout, peuvent être extrêmement désastreuses pour les développeurs, qui peuvent finir par abandonner entièrement leurs projets à la suite d’un tel incident.
L’incident témoigne de la façon dont l’écosystème logiciel actuel est interconnecté et vulnérable à l’exploitation. Un seul compte compromis peut offrir aux attaquants une portée massive, rendant crucial la mise en place de mesures de sécurité de la chaîne d’approvisionnement améliorées à chaque étape du processus de développement.
Se protéger contre la menace croissante de logiciels malveillants
Avec la montée des menaces de logiciels malveillants et les attaques devenant plus avancées et ciblées, il est important que les utilisateurs soient informés et restent toujours vigilants sur toutes les plateformes.
Les logiciels malveillants ou malware sont en réalité l’un des types d’attaques cyber les plus courants. Ici, les attaquants développent un code logiciel ou un programme informatique avec l’intention d’accéder ou de causer des dommages à l’ordinateur de la victime sans que celle‑ci ne sache qu’elle a été compromise.
Chaque année, des milliards d’attaques de malware se produisent partout dans le monde sur tous les types d’appareils et systèmes d’exploitation. En utilisant des malwares, les cybercriminels prennent en otage non seulement des appareils mais aussi des réseaux d’entreprise entiers.
En obtenant un accès non autorisé aux appareils de la victime, les attaquants volent des actifs numériques et des données sensibles, y compris les identifiants de connexion, les numéros de carte de crédit et d’autres informations précieuses. Les attaques de malware ciblent de plus en plus les entreprises, car celles‑ci détiennent d’importantes quantités de données personnelles que les hackers peuvent exploiter pour extorquer d’importantes sommes d’argent.
Les données montrent que la majorité (59 %) des organisations a été victime d’une telle attaque en 2024. Même les petites entreprises ne sont pas à l’abri, 47 % d’entre elles ayant été touchées par un ransomware l’année dernière. Par ailleurs, le paiement moyen de rançon a bondi de 500 % à 2 millions de dollars pendant cette période.
Le coût moyen de récupération après une attaque de malware a également grimpé jusqu’à 2,73 millions de dollars. L’une des plus grandes menaces auxquelles Internet est actuellement confronté est le malware, qui peut prendre diverses formes dans le seul but de nuire aux systèmes informatiques et à leurs utilisateurs.
Les virus, ransomwares, chevaux de Troie, vers, logiciels espions, adwares et crypto‑jacking sont tous différents types de malware. Tous ces programmes sont conçus pour obtenir un accès non autorisé à un réseau ou endommager les systèmes informatiques.
En ce qui concerne les causes profondes des attaques, la principale, à 32 %, est l’exploitation de vulnérabilités par les attaquants, suivie des identifiants compromis (29 %) puis des e‑mails malveillants (23 %).
Maintenant, comment peut‑on se protéger de cette menace omniprésente ? La première et la plus simple étape consiste à toujours garder votre ordinateur et vos logiciels à jour. De plus, il est crucial de ne pas cliquer n’importe où sur Internet. En particulier en tant qu’utilisateur de crypto, il faut se méfier des liens et ne jamais télécharger quoi que ce soit dont vous n’êtes pas sûr.
Il en va de même pour les pièces jointes d’e‑mail. Méfiez‑vous d’ouvrir des e‑mails suspects et essayez de limiter le partage de fichiers. Il est prudent d’avoir un logiciel antivirus installé sur votre appareil.
Bien que inévitables, les organisations peuvent également se préparer aux attaques de malware en renforçant leurs défenses. Les moyens les plus simples pour ce faire sont d’utiliser des mots de passe forts, l’authentification multifacteur et des VPN, que les individus peuvent également utiliser pour se protéger plus efficacement.
Les organisations doivent surveiller constamment les appareils à la recherche de signes d’activité suspecte, évaluer les vulnérabilités et réaliser des tests de pénétration. Les sauvegardes de données sensibles sur des disques déconnectés du réseau, quant à elles, aideront à la récupération après des attaques de malware.
Les employés doivent être formés à repérer ces attaques plus efficacement et à réagir rapidement en disposant de plans d’intervention et en sachant qui contacter lorsqu’ils soupçonnent une menace de malware.
En utilisant l’architecture réseau Zero Trust, les entreprises peuvent s’assurer que personne n’accède à des données ou actifs qu’il ne devrait pas. Dans le modèle Zero Trust, les utilisateurs ne sont jamais considérés comme fiables et sont toujours vérifiés.
Dans la vie hyper‑digitale d’aujourd’hui, ces pratiques peuvent aider chacun à se protéger contre les dangers d’un monde de plus en plus interconnecté.
En ce qui concerne la protection contre les packages malveillants, les recommandations générales de sécurité contre les malwares s’appliquent également aux attaques npm, mais bien sûr, il existe des précautions supplémentaires spécifiques à prendre en raison de la vulnérabilité particulière de cet écosystème, liée à sa nature ouverte, à la réutilisation massive de petits packages et aux vastes arbres de dépendances.
Pour vous protéger de cette menace sérieuse, vous devez toujours vérifier que le package est fiable avant de l’installer. Vérifier l’intégrité du package garantira que votre arbre de dépendances n’a pas été altéré.
Lors de la recherche de signes d’illégitimité, en plus de la source et de la propriété du package, examinez tout changement apporté aux mainteneurs. Vous pouvez également vouloir étudier ce que font les packages et la nécessité de ceux‑ci.
Utilisez des outils de sécurité qui surveillent en continu les nouvelles menaces et fournissent des conseils pratiques pour atténuer la situation. Des vérifications npm audit peuvent être exécutées pour détecter les vulnérabilités connues dans les dépendances du projet. La mise en place de scans de sécurité automatisés avant le déploiement garantira, quant à elle, que seul le code revu et approuvé entre en production.
Maintenant, pour vous protéger de la dernière attaque de malware, vous devez épingler les packages affectés à leurs versions les plus sûres avant la compromission grâce à la fonction overrides dans le fichier package.json.
Exécutez npm audit ou utilisez des outils d’analyse de composition logicielle (SCA) pour vérifier les versions affectées dans votre arbre de dépendances. Surveillez tout indicateur de compromission (IoC) en vérifiant vos journaux de construction, vos environnements de développement et le trafic sortant à la recherche d’activités suspectes.
Cliquez ici pour une liste des cinq meilleures entreprises qui ont riposté aux cyberattaques.
Réflexions finales: Renforcer les dépendances open source
Les menaces sur Internet augmentent constamment et deviennent plus sophistiquées.
Avec des attaquants adoptant de nouveaux vecteurs d’attaque et ciblant des projets sous‑financés, il devient crucial pour les développeurs, les entreprises et les utilisateurs de ne pas attendre que la menace apparaisse avant d’agir, mais de prendre des mesures proactives car un maillon faible peut faire tomber un système entier.
C’est en restant informé des menaces émergentes et en auditant continuellement les chaînes d’approvisionnement logicielles et en surveillant les menaces que nous pouvons réellement nous protéger contre les risques cyber en constante évolution.












