Composed

Axios compromis sur npm : une dépendance malveillante injecte un RAT

Compromission supply chain npm ciblant Axios: une dépendance malveillante (plain-crypto-js) a déployé un RAT dans v1.14.1 et v0.30.4.

Publié le par Emmanuel LASTRA Mis à jour le 3 min de lecture

Axios compromis sur npm : une dépendance malveillante injecte un RAT
Image par Pete Linforth de Pixabay

Une attaque de type supply chain a récemment ciblé le package npm Axios, en introduisant une dépendance malveillante dans certaines versions publiées. D’après l’analyse de Socket, les versions 1.14.1 et 0.30.4 ont brièvement inclus le package malveillant plain-crypto-js@4.2.1, absent du dépôt officiel et publié juste avant son intégration.

Cette dépendance embarquait un script d’installation exécuté automatiquement lors d’un npm install. Celui-ci téléchargeait et déployait un RAT (Remote Access Trojan), permettant à un attaquant de prendre le contrôle à distance des systèmes compromis. Le code malveillant n’était pas présent directement dans Axios, mais dissimulé dans la chaîne de dépendances, rendant l’attaque plus difficile à détecter.

Axios étant massivement utilisé, y compris comme dépendance transitive, de nombreux projets ont pu être exposés sans l’utiliser directement, amplifiant fortement la surface d’impact.

L’incident serait lié à la compromission d’un compte mainteneur, un scénario classique dans les attaques visant l’écosystème npm. Compte tenu de la popularité d’Axios (des dizaines de millions de téléchargements hebdomadaires), l’impact potentiel est particulièrement élevé, notamment pour les environnements CI/CD dans lesquels les dépendances sont installées souvent automatiquement sans vérification approfondie et sans pinning strict des versions.

Fenêtre d’exposition

Les versions affectées ont depuis été retirées, mais le risque persiste pour les environnements ayant installé ces releases pendant la fenêtre d’exposition qui serait entre 00:21 UTC le 31 mars 2026 (publication de axios@1.14.1 puis axios@0.30.4 à 01:00 UTC) et 03:29 UTC (retrait npm).

Même après retrait des versions, les environnements ayant effectué un npm install durant cette période doivent être considérés comme potentiellement compromis, en particulier si des secrets étaient accessibles au moment de l’exécution.

Recommandations :

  • vérifier l’absence des versions affectées (1.14.1 et 0.30.4)
  • revenir à une version saine
  • supprimer toute dépendance suspecte (plain-crypto-js)
  • considérer les machines comme compromises : rotation des secrets, audit des accès
  • renforcer les processus de gestion des dépendances

C’est quoi un Remote Access Trojan (RAT) ?

Un RAT (Remote Access Trojan) est un type de malware qui, une fois installé sur une machine, ouvre une porte dérobée permettant à un attaquant de la contrôler à distance : exécuter des commandes, lire des fichiers, exfiltrer des données ou surveiller l’activité en temps réel. Contrairement à un ransomware dont les effets sont immédiatement visibles, un RAT opère discrètement, souvent sans aucun signe apparent pour l’utilisateur ou les équipes de supervision.

Dans le cas présent, le RAT était déployé dès l’installation du package, automatiquement, sans intervention humaine, ce qui le rendait particulièrement adapté à une attaque visant des environnements de développement et de CI/CD où les dépendances sont installées en masse lors de chaque build.

C’est quoi une attaque supply chain ?

Une attaque supply chain (ou attaque par la chaîne d’approvisionnement) consiste à compromettre un logiciel non pas en attaquant directement sa cible finale, mais en s’introduisant dans l’une des briques qui le composent : une dépendance, un outil de build, un compte mainteneur, un registre de paquets. L’objectif est de profiter de la confiance implicite qu’un projet accorde à ses dépendances pour diffuser du code malveillant à grande échelle.

Dans l’écosystème npm, la surface d’attaque est particulièrement large : un package populaire comme Axios compte des centaines de dépendances directes et transitives, chacune représentant un point d’entrée potentiel. Compromettre un seul compte mainteneur ou glisser une dépendance malveillante dans une version publiée suffit à exposer des millions de projets en aval, souvent sans qu’aucune alerte ne se déclenche côté utilisateur.

Le cas Axios en est une illustration directe : le code malveillant n’était pas dans Axios lui-même, mais dans une dépendance ajoutée discrètement. Les systèmes CI/CD, qui installent automatiquement les paquets à chaque build, sont particulièrement vulnérables à ce mode opératoire.