100 millions de téléchargements par semaine, présent dans 80 % des environnements cloud de la planète. Le 31 mars 2026, la bibliothèque JavaScript Axios, brique invisible de millions d’applications web, a été empoisonnée pendant trois heures. Il a suffi d’un seul développeur piégé par un faux entretien d’embauche pour que des hackers nord-coréens injectent une porte dérobée dans l’un des logiciels les plus utilisés au monde.

Un faux fondateur, un faux Slack, une vraie intrusion

Jason Saayman, le responsable principal d’Axios sur la plateforme npm, a été ciblé des semaines avant l’attaque. Les hackers ont usurpé l’identité du dirigeant d’une entreprise tech bien réelle, en clonant son apparence et celle de sa société jusque dans les moindres détails. Ils ont créé un espace Slack fictif avec de faux employés, des canaux de discussion actifs, des partages d’articles LinkedIn, le tout suffisamment crédible pour tromper un professionnel aguerri.

Un entretien sur Microsoft Teams a été programmé. Pendant la visioconférence, un message d’erreur technique s’est affiché, invitant Saayman à installer une mise à jour de Teams pour résoudre le problème. Cette « mise à jour » était en réalité un cheval de Troie. Une fois installé, le logiciel malveillant a donné aux attaquants un accès complet à la machine du développeur, y compris ses identifiants npm. L’authentification multifacteur n’a rien pu faire : les pirates utilisaient directement les sessions déjà authentifiées sur le navigateur de Saayman, contournant toutes les protections de connexion.

« Le Slack était extrêmement bien fait. Ils avaient des canaux où ils partageaient des posts LinkedIn. Ils avaient même ce que je suppose être de faux profils », a raconté Saayman après l’incident, selon BleepingComputer.

Trois heures pour empoisonner des millions de machines

Le 31 mars 2026 à 00h21 UTC, les attaquants ont publié deux versions piégées d’Axios : la 1.14.1 et la 0.30.4. Le code malveillant se cachait dans une dépendance baptisée « plain-crypto-js », qui s’exécutait automatiquement à l’installation. Ce script téléchargeait et lançait des charges supplémentaires depuis un serveur de commande et de contrôle hébergé sur le domaine sfrclak[.]com.

Le malware, identifié par Google sous le nom de WAVESHAPER.V2, existait en trois variantes : une version C++ pour macOS, une version PowerShell pour Windows, et une version Python pour Linux. Ses capacités : reconnaissance du système, énumération des fichiers, exécution de code à distance et accès permanent à la machine infectée.

Les versions empoisonnées sont restées en ligne pendant environ trois heures avant d’être détectées et supprimées. Mais Axios n’est pas un logiciel que l’on installe consciemment. Il se retrouve dans des millions d’applications en tant que dépendance indirecte : une application utilise un outil qui utilise un autre outil qui utilise Axios. Des organisations qui n’ont jamais entendu parler de cette bibliothèque ont pu être compromises sans le savoir. C’est le principe même de l’attaque par chaîne d’approvisionnement : on ne vise pas la cible finale, on empoisonne le puits dans lequel tout le monde boit.

La Corée du Nord derrière le clavier

Google Threat Intelligence Group et Mandiant ont attribué l’attaque au groupe UNC1069, un collectif nord-coréen actif depuis au moins 2018. Ce groupe, motivé par l’appât du gain, cible principalement les entreprises de cryptomonnaies et de finance décentralisée. Selon les services de renseignement américains, la Corée du Nord a dérobé plus de 3 milliards de dollars en actifs numériques entre 2017 et 2025, de quoi financer une part significative de son programme balistique. L’infrastructure utilisée pour l’attaque, un nœud VPN AstrilVPN sur l’adresse IP 142.11.206.73, avait déjà servi lors d’opérations précédentes du même groupe.

L’attaque contre Axios ne visait pas un développeur au hasard. Les hackers ont simultanément ciblé plusieurs responsables de paquets populaires dans l’écosystème Node.js. Selon la société de sécurité Socket, les cibles « incluent certains des paquets les plus utilisés du registre npm et du noyau Node.js lui-même », des bibliothèques qui totalisent des milliards de téléchargements hebdomadaires.

Le talon d’Achille du logiciel moderne

L’incident illustre une fragilité structurelle du développement logiciel contemporain. Des dizaines de milliers d’applications critiques reposent sur des briques open source maintenues, parfois seul, par un développeur bénévole. En compromettant une seule personne, les attaquants ont potentiellement touché des millions de systèmes en aval. Le même scénario pourrait s’appliquer à n’importe laquelle des 2,5 millions de bibliothèques disponibles sur npm, dont beaucoup sont maintenues par une poignée de bénévoles sans ressources ni formation à la sécurité.

Ce n’est pas la première fois que la chaîne d’approvisionnement logicielle sert de vecteur d’attaque. En 2024, la bibliothèque xz Utils avait été piégée par un contributeur patient qui avait gagné la confiance de la communauté pendant deux ans. Mais la méthode UNC1069 marque une évolution : plutôt que de s’infiltrer lentement, les Nord-Coréens ont misé sur un piège social sophistiqué, exécuté en quelques semaines et conçu spécifiquement pour chaque cible. Le niveau de préparation traduit une professionnalisation inquiétante de la cybercriminalité étatique nord-coréenne.

Microsoft a publié un guide de remédiation le 1er avril 2026. L’agence de cybersécurité de Singapour a émis un avis officiel. Google recommande de considérer tout système ayant installé les versions piégées comme compromis et de renouveler l’intégralité des identifiants et clés d’authentification. L’ampleur exacte des infections reste inconnue : trois heures ont suffi, mais personne ne sait encore combien de machines ont installé le code empoisonné pendant cette fenêtre. La prochaine mise à jour automatique d’un outil que vous n’avez jamais installé vous-même pourrait venir du même type de piège.