Comment vérifier si votre application est affectée par l'attaque supply chain Axios (et la corriger)

Équipe Noqta
Par Équipe Noqta ·

Chargement du lecteur de synthèse vocale...

Le 31 mars 2026, le package npm axios — utilisé dans des millions de projets JavaScript — a été compromis dans une attaque supply chain. Les versions malveillantes 1.14.1 et 0.30.4 ont déployé un cheval de Troie d'accès à distance (RAT) via une dépendance cachée plain-crypto-js@4.2.1.

Ce guide vous accompagne dans la détection, l'analyse et la remédiation — avec des commandes terminal concrètes.

TL;DR : Lancez notre scanner automatisé : curl -fsSL https://noqta.tn/tools/check-axios-attack.sh | bash

Vérification rapide (30 secondes)

# 1. Vérifier le lockfile
grep -E "1\.14\.1|0\.30\.4" package-lock.json yarn.lock pnpm-lock.yaml 2>/dev/null
 
# 2. Vérifier la dépendance malveillante
ls node_modules/plain-crypto-js 2>/dev/null && echo "⚠️ AFFECTÉ!" || echo "✅ Propre"
 
# 3. Vérifier le système (macOS)
ls -la /Library/Caches/com.apple.act.mond 2>/dev/null && echo "⚠️ RAT TROUVÉ!" || echo "✅ Propre"

Étape 1 : Scanner les lockfiles

package-lock.json (npm)

cat package-lock.json | python3 -c "
import json, sys
data = json.load(sys.stdin)
found = False
for path, info in data.get('packages', {}).items():
    if 'axios' in path and info.get('version') in ['1.14.1', '0.30.4']:
        print(f'⚠️  CRITIQUE: {path} → {info[\"version\"]}')
        found = True
    if 'plain-crypto-js' in path:
        print(f'⚠️  CRITIQUE: Package malveillant à {path}')
        found = True
if not found:
    print('✅ Aucune version compromise trouvée')
"

yarn.lock

grep -A 2 'axios@' yarn.lock | grep -E 'version "1\.14\.1"|version "0\.30\.4"'
grep 'plain-crypto-js' yarn.lock

Étape 2 : Vérifier node_modules

node -e "try { console.log('Version axios:', require('axios/package.json').version) } catch(e) { console.log('axios non installé') }"
find node_modules -name "plain-crypto-js" -type d 2>/dev/null

Étape 3 : Vérifier les indicateurs RAT

macOS

[ -f "/Library/Caches/com.apple.act.mond" ] && echo "⚠️ RAT trouvé!" || echo "✅ Propre"
[ -f "/Library/LaunchDaemons/com.apple.act.mond.plist" ] && echo "⚠️ Persistance RAT!" || echo "✅ Propre"
lsof -i -P 2>/dev/null | grep -i "sfrclak\|:8000" && echo "⚠️ Connexion C2!" || echo "✅ Pas de connexion C2"

Windows (PowerShell)

if (Test-Path "$env:PROGRAMDATA\wt.exe") { Write-Host "⚠️ RAT trouvé!" -ForegroundColor Red }
else { Write-Host "✅ Propre" -ForegroundColor Green }

Linux

ss -tnp 2>/dev/null | grep -E "sfrclak|:8000" && echo "⚠️ Connexion C2!" || echo "✅ Propre"
crontab -l 2>/dev/null | grep -iE "sfrclak|plain-crypto" && echo "⚠️ Cron suspect!" || echo "✅ Propre"

Étape 4 : Outil de scan automatisé

# Scan seul
curl -fsSL https://noqta.tn/tools/check-axios-attack.sh | bash
 
# Scan et correction automatique
curl -fsSL https://noqta.tn/tools/check-axios-attack.sh | bash -s -- --fix
 
# Projet spécifique
./check-axios-attack.sh --path /votre/projet --verbose
 
# Sortie JSON pour CI/CD
./check-axios-attack.sh --json

Étape 5 : Remédiation complète

Immédiat

rm -rf node_modules/plain-crypto-js
npm install axios@1.14.0 --save
rm -rf node_modules && npm ci

Rotation des identifiants

Changez tout : clés API, mots de passe BDD, tokens, clés SSH, certificats SSL.

Nettoyage système (si RAT trouvé)

# macOS
sudo rm -f /Library/Caches/com.apple.act.mond
sudo rm -f /Library/LaunchDaemons/com.apple.act.mond.plist

Étape 6 : Audit de sécurité

npm audit
npm audit fix

Étape 7 : Prévention

Fixer les versions

{ "dependencies": { "axios": "1.14.0" } }

.npmrc

save-exact=true
audit=true

2FA npm

npm profile enable-2fa auth-and-writes

CI/CD

name: Supply Chain Check
on: [push, pull_request]
jobs:
  security:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: npm ci
      - run: npm audit --audit-level=critical
      - run: curl -fsSL https://noqta.tn/tools/check-axios-attack.sh | bash --json

FAQ

Combien de temps les versions malveillantes étaient-elles disponibles ?

Environ 2 heures (de ~00:00 à ~02:00 UTC le 31 mars 2026).

J'ai installé axios il y a des semaines — suis-je en sécurité ?

Si votre lockfile fixe une version autre que 1.14.1 ou 0.30.4, oui.

Le malware s'auto-détruit — suis-je en sécurité ?

Non. L'auto-destruction efface les traces d'installation, mais le binaire RAT peut encore tourner.

Puis-je utiliser fetch à la place d'axios ?

Oui. L'API fetch native est disponible dans Node.js 18+.


Besoin d'aide pour sécuriser votre infrastructure ? Noqta propose des audits de sécurité et du conseil DevSecOps. Contactez-nous.

Nouveau projet ? Consultez nos guides sur l'architecture API-first et le scan de sécurité IA.


Vous voulez lire plus de tutoriels? Découvrez notre dernier tutoriel sur Construire des systemes multi-agents IA avec n8n : Guide complet d'automatisation intelligente.

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.

Articles connexes

Construire des Microservices Node.js avec Docker, RabbitMQ et API Gateway

Apprenez à construire une architecture microservices prête pour la production avec Node.js, Docker Compose, RabbitMQ pour la messagerie asynchrone et un API Gateway. Ce tutoriel pratique couvre la décomposition des services, la communication inter-services, la conteneurisation et le déploiement.

35 min read·