Les + populaires

BTC ETH SOL XRP BNB USDC USDT

Suivez-nous

Compromission d’un écosystème : enquête sur l’attaque npm qui a inquiété la crypto

IAavec
Titres Titres

Le 8 septembre 2025, une alerte publique lancée par le directeur technique de Ledger a révélé une compromission touchant des paquets distribués via npm, le registre central de l’écosystème JavaScript. Cet incident a mis en lumière la fragilité des chaînes d’approvisionnement logicielles et leurs conséquences possibles sur les transactions en cryptomonnaies.

L’affaire a soulevé des interrogations majeures : comment une attaque ciblant un seul développeur peut-elle avoir un effet domino sur des millions de projets ? Quelles failles structurelles cette compromission révèle-t-elle ? Et surtout, quelles protections doivent être mises en place pour éviter qu’un tel scénario ne se répète ?

Optimisez vos coûts bancaires
Revolut
Profitez d'abonnements gratuits

Début de l’incident et acteurs impliqués

L’alerte a été relayée publiquement par Charles Guillemet, directeur technique de Ledger, qui a signalé une compromission affectant un compte npm d’un mainteneur connu sous le pseudonyme « qix » (Josh Junon). Ledger est une société française fondée en 2014, spécialisée dans les portefeuilles matériels et la sécurité des clés privées pour actifs numériques. Son intervention a servi de déclencheur pour mobiliser la communauté web3 et alerter les développeurs.

Le mainteneur ciblé contribue à des paquets très populaires, intégrés par défaut dans un grand nombre de projets. Des bibliothèques telles que debug ou chalk sont téléchargées des milliards de fois par semaine, ce qui explique la crainte d’une propagation rapide et massive d’un code malveillant. La confiance quasi automatique accordée aux mises à jour npm a renforcé la gravité perçue de l’événement.

Comment l’attaque s’est-elle déroulée ?

L’attaque a commencé par une opération classique de phishing. Un email imitant la charte graphique et le ton officiel de npm invitait Josh Junon à mettre à jour son système d’authentification à deux facteurs (2FA). En suivant le lien, il a saisi ses identifiants et son code 2FA sur un site factice. Grâce à ces informations, les attaquants ont pris le contrôle de son compte npm.

Une fois l’accès obtenu, des versions modifiées de plusieurs paquets ont été publiées sous le nom du mainteneur. Les projets utilisant ces paquets de manière automatique ont donc téléchargé, sans méfiance, du code compromis. Cet enchaînement illustre le risque d’une attaque de la chaîne d’approvisionnement : frapper un maillon unique pour contaminer l’ensemble du réseau.

Exemple de faux email créé par la rédaction pour illustrer la facilité avec laquelle un phishing peut imiter un message officiel.
Exemple de faux email créé par la rédaction en moins de 10 minutes pour illustrer la facilité avec laquelle un phishing peut imiter un message officiel.

En regardant ce modèle, posez-vous la question : auriez-vous cliqué face à la crédibilité apparente d’un e-mail présenté comme automatique ? Avant de trancher, gardez à l’esprit que « Qix », figure expérimentée, respectée et avertie de l’écosystème, a lui-même été piégé.

Investissez en bourse
Trade Republic
10€ offerts en actions

JavaScript et la mécanique du code malveillant

Le langage JavaScript occupe une place centrale dans cette affaire, car il est omniprésent dans les applications modernes. Il s’exécute aussi bien dans les navigateurs que sur les serveurs via Node.js. Une modification injectée dans un paquet peut donc affecter des millions d’applications sans qu’aucune action ne soit nécessaire de la part des utilisateurs finaux.

Le code malveillant reposait sur des techniques de hooking. Concrètement, il interceptait des fonctions essentielles, comme fetch ou les appels à l’interface de portefeuilles web3 (par exemple MetaMask). Lorsqu’une transaction était initiée, l’adresse du destinataire était remplacée par une adresse contrôlée par les attaquants. Pour dissimuler cette manipulation, les cybercriminels ont utilisé la distance de Levenshtein, un algorithme permettant de choisir une adresse visuellement très proche de l’originale. L’utilisateur voyait une transaction familière alors qu’il envoyait ses fonds ailleurs.

L’ensemble était obfusqué afin de compliquer la lecture du code. Cette stratégie rendait l’analyse difficile pour les humains, mais transparente pour les machines. Le but n’était pas de voler des clés privées, mais de détourner en douce les transactions au moment de leur validation. Dans ce contexte, l’usage d’un portefeuille matériel affichant physiquement l’adresse de destination s’avère une défense redoutablement efficace, car il rend la substitution invisible impossible.

Impact et bilan : entre gravité potentielle et pertes limitées

En termes de potentiel, la gravité était élevée. Les paquets affectés totalisent plus de 2,6 milliards de téléchargements hebdomadaires selon certaines estimations, ce qui laisse imaginer la vitesse à laquelle un code malveillant peut se propager à travers l’écosystème. Une seule version compromise suffisait à mettre en danger des milliers de projets dans un délai très court.

En pratique, le bilan financier s’est révélé bien plus limité. Grâce à une réaction rapide des mainteneurs, des entreprises de cybersécurité et de la plateforme npm, les versions corrompues ont été supprimées en quelques heures. Selon les premières estimations publiques, les pertes se comptent en dizaines ou centaines d’euros seulement. L’épisode est donc classé comme gravité potentielle élevée, mais impact réel faible sur le plan économique.

Cependant, cette fois-ci, la vigilance collective a limité les dégâts. Dans un scénario où la compromission serait restée active plusieurs jours, le résultat aurait pu être catastrophique, tant l’écosystème npm irrigue d’applications web et crypto dans le monde entier.

Gérez votre patrimoine
Invvest
10% de réduction sur l'abonnement annuel

Mesures et recommandations

L’incident a rappelé l’importance de sécuriser les chaînes d’approvisionnement logicielles. Plusieurs recommandations se dégagent : verrouiller les versions des dépendances via des fichiers de lock, utiliser des méthodes 2FA résistantes au phishing comme les clés physiques, et instaurer une revue humaine obligatoire pour les mises à jour critiques. Ces gestes simples permettent de contenir considérablement le risque.

Cette compromission doit servir d’électrochoc : chaque dépendance logicielle doit être traitée comme une frontière critique de sécurité.

Charles Guillemet, CTO de Ledger — alerte publiée sur X, 8 septembre 2025

Les utilisateurs, de leur côté, doivent vérifier systématiquement l’adresse affichée sur un portefeuille matériel avant toute validation. Les équipes de développement doivent également mettre en place des systèmes d’audit et de monitoring des dépendances pour détecter rapidement les versions suspectes.

Un avertissement pour l’avenir

L’épisode npm de septembre 2025 illustre parfaitement la vulnérabilité des chaînes logicielles mondialisées. Une attaque ciblant un seul développeur peut avoir un retentissement mondial. Qu’on se le dise, la communauté a échappé à un scénario catastrophique.

La vigilance est aujourd’hui une responsabilité partagée entre les développeurs, les entreprises et les utilisateurs qui doivent agir ensemble pour renforcer les défenses. Cela passe par le contrôle strict des dépendances, la vérification des signatures et l’éducation quant aux risques de phishing.

Gérez votre patrimoine
Finary
Un mois de Premium offert

Donnez votre avis

Soyez le 1er à noter cet article
ou bien laissez un avis détaillé


Partagez cet article maintenant !

Envoyez simplement nos contenus crypto et finance à vos proches.


Partagez votre avis

Partagez votre avis