Le paquet npm Axios compromis dans une attaque de la chaîne d'approvisionnement déployant un RAT multiplateforme

La bibliothèque HTTP axios — l'un des paquets les plus utilisés de l'écosystème npm avec plus de 83 millions de téléchargements hebdomadaires — a été compromise dans une attaque de la chaîne d'approvisionnement le 30 mars 2026. Deux versions malveillantes, axios@1.14.1 et axios@0.30.4, ont été publiées à l'aide d'identifiants détournés d'un mainteneur, incluant une dépendance cachée qui installe silencieusement un cheval de Troie à accès distant (RAT) multiplateforme.
Ce qui s'est passé
À 23h59 UTC le 30 mars, un paquet malveillant nommé plain-crypto-js@4.2.1 a été publié sur npm. En l'espace de 39 minutes, les deux versions compromises d'axios ont été empoisonnées. Les versions malveillantes ont été publiées en dehors du pipeline CI/CD habituel d'Axios — aucun tag GitHub correspondant n'existe pour ces versions.
Le système de détection automatique de Socket a signalé le paquet suspect à 00h05:41 UTC le 31 mars, soit seulement six minutes après sa publication.
Comment fonctionne l'attaque
Les versions compromises d'axios injectent plain-crypto-js@4.2.1 comme nouvelle dépendance. Ce paquet n'est importé nulle part dans le code source d'axios. Son unique objectif est d'exécuter un script postinstall agissant comme un installateur de RAT ciblant macOS, Windows et Linux.
Le malware utilise un schéma d'obfuscation à deux couches :
- Couche 1 — Base64 inversé avec remplacement des underscores
- Couche 2 — Chiffrement XOR utilisant la clé
OrDeR_7077et la constante333
En moins de deux secondes après l'exécution de npm install, le malware contactait déjà le serveur de commande et contrôle de l'attaquant — avant même que npm n'ait terminé la résolution du reste de l'arbre de dépendances.
Capacités du malware
Le RAT déployé est capable de :
- Exécuter des commandes arbitraires sur les machines infectées
- Exfiltrer des données système et des identifiants
- Persister après les redémarrages grâce à des mécanismes spécifiques à chaque système d'exploitation
- Livrer des charges utiles supplémentaires selon le système d'exploitation cible
Le chercheur en sécurité Joe Desimone d'Elastic Security a procédé à la rétro-ingénierie du binaire de deuxième étape sur macOS, confirmant l'ensemble des capacités du RAT.
Cause profonde
Les mainteneurs d'Axios ont révélé une faille de sécurité majeure : "l'utilisation continue d'un jeton npm à longue durée de vie en parallèle de la publication de confiance" a probablement permis l'accès non autorisé. L'attaquant a pu publier de nouvelles versions directement sur npm sans passer par le workflow GitHub Actions du projet.
Qui est concerné ?
Toute personne ayant installé ou mis à jour vers axios@1.14.1 ou axios@0.30.4 pendant la fenêtre d'environ 39 minutes où les paquets étaient disponibles sur npm devrait considérer sa machine comme compromise. Les versions malveillantes ainsi que plain-crypto-js ont été retirées de npm.
Que faire maintenant ?
- Vérifiez votre fichier de verrouillage pour
axios@1.14.1,axios@0.30.4ouplain-crypto-js - Revenez aux versions sûres :
axios@1.14.0ouaxios@0.30.3 - Changez vos identifiants si vous avez installé l'une des versions compromises
- Analysez votre système à la recherche d'indicateurs de compromission
- Verrouillez les versions de vos dépendances et activez l'audit du fichier de verrouillage dans votre pipeline CI/CD
Implications plus larges
Cet incident constitue un nouveau rappel de la fragilité de la chaîne d'approvisionnement npm. Axios est utilisé dans les frameworks frontend, les services backend et les applications d'entreprise à travers le monde. La rapidité de détection — six minutes — démontre que la surveillance automatisée de la sécurité n'est plus optionnelle pour l'écosystème open source.
Source : Socket
Discutez de votre projet avec nous
Nous sommes ici pour vous aider avec vos besoins en développement Web. Planifiez un appel pour discuter de votre projet et comment nous pouvons vous aider.
Trouvons les meilleures solutions pour vos besoins.