
Script Bash pour détecter CVE-2025-55182 (React2Shell) et l'exposition des identifiants dans des projets Next.js. Zéro dépendance.
La version japonaise est disponible sur README.ja.md.
Script Bash pour détecter CVE-2025-55182 (React2Shell) et l’exposition d’identifiants dans les projets Next.js. Zero dépendance.
CVSS : 10.0 (CRITIQUE) | CWE-502 : Déserialisation de données non fiables | SNORT SID : 65554
Exécution de code à distance non authentifiée via la déserialisation de données non fiables dans les Server Components Next.js. Un attaquant envoie une requête HTTP forgée vers un point de terminaison d’un Server Component Next.js ; le serveur désérialise la charge utile et exécute du code arbitraire.
Versions affectées :
| Package | Plage vulnérable |
|---|---|
| Next.js | 15.0.0–15.0.4, 15.1.0–15.1.8, 15.2.0–15.2.5, 15.3.0–15.3.5, 15.4.0–15.4.7, 15.5.0–15.5.6, 15.6.0, 16.0.0–16.0.6 |
| React | 19.0.0, 19.1.0, 19.1.1, 19.2.0 |
Références :
Phase 1 — Version de Next.js : Lit package.json, package-lock.json et yarn.lock pour trouver la version résolue de Next.js et la compare à la plage vulnérable.
Phase 2 — Version de React : Même approche pour React (19.0.0, 19.1.0, 19.1.1, 19.2.0).
Phase 3 — App Router / Server Components : Détecte le répertoire app/ et les directives "use server". Une version vulnérable avec des Server Components actifs constitue une surface d’attaque exploitable.
Phase 4 — Exposition d’identifiants : Analyse les fichiers .env* (exclut .env.example et .env.sample), next.config.* et les fichiers source pour les clés API, les URL de base de données, les secrets JWT et les préfixes de secrets codés en dur (sk-, AKIA, ghp_, npm_).
Phase 5 — Clés SSH : Recherche les fichiers de clés privées (id_rsa, *.pem, *.p12, etc.) et les répertoires .ssh/ commités dans le projet.
Phase 6 — Configuration cloud : Vérifie les fichiers Docker Compose pour les secrets codés en dur, les manifestes Kubernetes pour l’exposition de jetons de compte de service, et l’utilisation du SDK AWS pour les indices IMDSv2.
Phase 7 — Vérification des IOC : Recherche les adresses IP C2 issues des renseignements Cisco Talos et les motifs suspects de fichiers dotfiles dans /tmp/ (Linux).
C2 IPs (Cisco Talos) : 144.172.102.88 / 172.86.127.128 / 144.172.112.136 / 144.172.117.112
Phase 8 — Résumé : Compteurs CRITIQUE/AVERTISSEMENT/INFO avec étapes de correction.
Aucune installation nécessaire. Téléchargez et exécutez :
curl -O https://raw.githubusercontent.com/aliksir/nextjs-security-scanner/main/scan.sh
bash scan.sh [répertoire-cible]
Ou clonez :
git clone https://github.com/aliksir/nextjs-security-scanner.git
bash nextjs-security-scanner/scan.sh /chemin/vers/votre/app-nextjs
# Analyser le répertoire courant
bash scan.sh
# Analyser un projet spécifique
bash scan.sh /chemin/vers/app-nextjs
# En CI/CD (code de sortie non nul = échec du pipeline)
bash scan.sh . || exit 1
Codes de sortie :
0 — Aucun problème1 — Avertissements (motifs d’identifiants détectés, revue nécessaire)2 — Critique (version vulnérable confirmée, action immédiate requise)=== Next.js Security Scanner ===
Cible : /home/utilisateur/monapp
Date : 2026-04-04 12:00
CVE : CVE-2025-55182 (React2Shell, CVSS 10.0)
[Phase 1] Vérification de la version Next.js
[CRITIQUE] Next.js v15.2.4 est vulnérable à CVE-2025-55182 (React2Shell)
-> package.json : "next": "^15.2.4"
-> Cette version permet une RCE non authentifiée via la déserialisation des Server Components
[Phase 2] Vérification de la version React
[CRITIQUE] React v19.1.0 fait partie de la liste vulnérable de CVE-2025-55182
[Phase 3] Détection de l’App Router / Server Components
[INFO] App Router détecté (répertoire app/ existe)
[CRITIQUE] Next.js vulnérable + Server Components = surface d’attaque active pour React2Shell
...
=== Résumé de l’analyse ===
CRITIQUE : 3
AVERTISSEMENT : 0
INFO : 2
Problèmes critiques trouvés. Action immédiate requise.
=== Correction (CVE-2025-55182) ===
1. Mettez à jour Next.js vers une version corrigée :
npm install next@latest
...
Mettez à jour immédiatement :
npm install next@latest
npm install react@latest react-dom@latest
Consultez https://github.com/vercel/next.js/releases pour la première version corrigée dans chaque série mineure.
Si une exploitation est suspectée :
ps aux | grep -E '\.sh|\.py'
crontab -l; cat /etc/cron*
ss -tnp | grep -E '144\.172|172\.86'
ls -la /tmp/ | grep '^\.'
144.172.102.88, 172.86.127.128, 144.172.112.136, 144.172.117.112bash scan.sh [répertoire-cible]
Mots-clés déclencheurs : « next.js security check », « CVE-2025-55182 », « React2Shell », « Next.js vulnerability scan »
Voir claude-code/SKILL.md pour le wrapper de compétence.
Cet outil est fourni uniquement à des fins défensives de sécurité. Il effectue des vérifications locales, en lecture seule, sur vos propres fichiers de projet. Aucune connexion réseau n’est établie, aucune donnée n’est envoyée à l’extérieur, et aucun exploit n’est exécuté.
Les informations de vulnérabilité et les données IOC sont basées sur des sources publiquement disponibles (NVD, Cisco Talos). Ce scanner peut produire des faux positifs ou manquer certains vecteurs d’attaque. Il ne remplace pas les audits de sécurité professionnels, les tests d’intrusion ou les correctifs de sécurité fournis par les éditeurs.
Utilisez-le à vos propres risques. Les auteurs déclinent toute responsabilité en cas de dommages résultant de l’utilisation de cet outil.
MIT — voir LICENSE