L’attaque Axios sur NPM injecte du RAT et compromet des milliers de développeurs

Axios

Axios - reprodução x

La populaire bibliothèque Axios, utilisée dans de nombreux projets JavaScript pour effectuer des requêtes HTTP, a enregistré une attaque de chaîne d’approvisionnement qui a compromis deux versions spécifiques publiées dans le registre NPM. Investigadores de StepSecurity a identifié les versions 1.14.1 et 0.30.4 comme malveillantes, publiées aux premières heures du 31 mars 2026. Les packages ont injecté une fausse dépendance qui exécute un script d’installation capable d’installer un cheval de Troie d’accès à distance sur les machines des développeurs.

L’incident a révélé le vaste écosystème de développement qui dépend de la bibliothèque, l’une des plus téléchargées de la plateforme avec plus de 100 millions de téléchargements hebdomadaires. Les attaquants n’ont pas modifié le code principal de Axios, mais ont ajouté une dépendance cachée appelée plain-crypto-js@4.2.1. Dépendance Essa activée automatiquement lors de l’exécution de l’installation de npm, installant des charges utiles spécifiques pour Windows, macOS et Linux.

Comment le compte de maintenance a été compromis

Les responsables de l’attaque ont eu accès au compte NPM du principal responsable du projet, identifié comme Jasonsaayman. Eles a modifié l’adresse e-mail associée enifstap@proton.meet publié manuellement les versions compromises, en contournant les flux d’intégration continue automatisés du référentiel sur GitHub. La première version malveillante, axios@1.14.1, a été publiée vers 00h21 UTC, suivie par axios@0.30.4 environ 39 minutes plus tard.

Cette approche a permis de rendre les packages disponibles sans déclencher de vérifications de signature ou de processus CI/CD habituels. Les responsables de Axios ont réagi rapidement dès leur découverte et NPM a supprimé les deux versions en quelques heures, limitant le temps d’exposition à environ deux à trois heures.

https://twitter.com/TheHackersNews/status/2038862039482093999?ref_src=twsrc%5Etfw

Détails techniques du malware injecté

La fausse dépendance plain-crypto-js@4.2.1 n’a été importée à aucun moment dans le code Axios d’origine, servant exclusivement à exécuter un script de post-installation. Le script agissait comme un cheval de Troie d’accès à distance, établissant un contact avec un serveur de commande et de contrôle pour télécharger des charges utiles supplémentaires adaptées à chaque système d’exploitation.

Des techniques d’obscurcissement ont été utilisées pour rendre l’analyse immédiate difficile, avec des commandes décodées au moment de l’exécution. Após installation réussie, le malware a supprimé ses propres traces, remplaçant le fichier package.json par une version propre pour éviter d’être détecté lors d’inspections ultérieures du dossier node_modules.

  • Vérification des versions concernées avec la commande npm list axios filtrant 1.14.1 ou 0.30.4
  • Vérification de la présence du dossier node_modules/plain-crypto-js comme indicateur de compromission
  • Rechercher des artefacts tels que des fichiers temporaires dans /tmp/ld.py ou des équivalents sur d’autres systèmes

Mesures d’atténuation recommandées pour les développeurs

Les développeurs qui ont installé les versions 1.14.1 ou 0.30.4 doivent considérer l’environnement comme compromis et prendre des mesures immédiates. La principale recommandation est de revenir aux versions sécurisées précédentes : axios@1.14.0 dans la dernière branche ou axios@0.30.3 dans l’ancienne version.

Il est essentiel de supprimer la fausse dépendance, d’effectuer une nouvelle installation avec l’indicateur –ignore-scripts et de faire pivoter toutes les informations d’identification sensibles, y compris les jetons NPM, les clés SSH, les accès aux services cloud et les variables d’environnement. Dans les pipelines d’intégration continue, l’adoption permanente du paramètre qui ignore les scripts de post-installation permet d’éviter les exécutions automatiques indésirables.

Impact sur l’écosystème de développement JavaScript

Axios fait partie des bibliothèques les plus utilisées dans l’écosystème Node.js et dans les applications frontales, étant une dépendance directe ou indirecte de nombreux projets d’entreprise et open source. L’attaque met en évidence la vulnérabilité inhérente des comptes individuels des responsables dans les packages très populaires, même lorsque le code principal reste intact.

Les experts en sécurité notent que la méthode utilisée démontre une sophistication opérationnelle, avec une préparation préalable de la fausse dépendance dans une version propre avant d’injecter la charge utile malveillante. La stratégie Essa a compliqué les détections automatiques initiales et a augmenté le risque pendant la courte période pendant laquelle les versions étaient disponibles.

Lignes directrices pour la vérification et le nettoyage des environnements affectés

Les équipes de développement doivent auditer les journaux d’installation et l’historique des packages pour identifier si des versions malveillantes ont été téléchargées. La présence du dossier plain-crypto-js dans node_modules constitue un indicateur fort que le dropper a été exécuté, quelle que soit la suppression ultérieure du fichier.

Après le nettoyage, il est recommandé d’analyser entièrement les systèmes avec des outils de détection des menaces et de surveiller les connexions réseau aux adresses associées au serveur de contrôle. La mise à jour immédiate des politiques de sécurité dans les référentiels privés permet également de réduire les risques similaires dans d’autres packages.

Prévenir les futures attaques sur les journaux de paquets

L’incident renforce l’importance de mesures telles qu’une authentification multifacteur stricte sur les comptes de publication, une surveillance continue des modifications apportées aux métadonnées des packages et l’adoption de contrôles d’intégrité plus robustes. Les systèmes open source Projetos très adoptés peuvent envisager des processus de révision supplémentaires avant de nouvelles versions.

Les développeurs individuels et les entreprises doivent donner la priorité à l’épinglage des versions sûres connues dans les fichiers de configuration du projet, en évitant l’installation automatique des mises à jour sans validation préalable. Les pratiques Essas contribuent à limiter la surface d’attaque dans les chaînes d’approvisionnement logicielles.

La communauté de la sécurité continue de suivre l’affaire pour cartographier les victimes potentielles et affiner les outils de détection. Até À l’heure actuelle, il n’existe aucun rapport public faisant état d’une exploitation à grande échelle, mais la recommandation unanime est de traiter toute installation des versions concernées comme une compromission totale du système impliqué.