
Script NSE Nmap pour scanner React2Shell (CVE-2025-55182)
Script NSE Nmap pour scanner React2Shell (CVE-2025-55182)
Avertissement Le code suivant est fourni uniquement à des fins éducatives et de recherche. Toute utilisation de ce script relève de la seule discrétion et responsabilité de l’utilisateur.
Ce scanner peut produire des faux positifs ou des résultats non concluants. Il appartient donc à l’utilisateur de valider et de confirmer tout résultat signalé. L’auteur décline toute responsabilité en cas d’utilisation abusive, de dommages ou de conséquences involontaires découlant de l’exécution de ce code.
Utilisez cet outil uniquement dans des environnements où vous disposez d’une autorisation explicite. Les tests non autorisés de systèmes sont strictement interdits et peuvent être illégaux.
Auteur : Kevin Leon
Catégories : discovery, vuln, intrusive
Type de script : Nmap NSE
nmap --script http-vuln-cve2025-55182.nse -p- <target>
nmap --script http-vuln-cve2025-55182.nse -p3000,3001,3002 <target>
nmap --script http-vuln-cve2025-55182.nse \
--script-args=http-vuln-cve2025-55182.waf_bypass=true <target>
PORT STATE SERVICE
3000/tcp open ppp
| http-vuln-cve2025-55182:
| VULNERABLE:
| React2Shell Remote Code Execution (RCE)
| State: VULNERABLE
| IDs: CVE:2025-55182
| Risk factor: High CVSS: 10.0
| Disclosure date: 2025-12-03
| References:
| https://react.dev/blog/2025/12/03/critical-security-vulnerability-in-react-server-components
| https://nvd.nist.gov/vuln/detail/CVE-2025-55182
| https://github.com/assetnote/react2shell-scanner
|_ https://github.com/msanft/CVE-2025-55182
Avant de tenter l’exploitation, le script vérifie que la cible exécute probablement :
Méthodes de détection
Le script effectue une requête initiale :
http.get(host, port, "/")
et inspecte :
X-Powered-By: next.jsX-Powered-By: react_next
(indicatif des ressources statiques Next.js)Alors la cible est considérée comme potentiellement vulnérable.
Génération de la limite multipart
Le script génère une limite aléatoire au format WebKit :
----WebKitFormBoundary<random 16 chars>
Celle-ci est utilisée pour l’exploit multipart/form-data.
Selon les arguments de l’utilisateur :
Charge utile d’exploitation simple
Charge utile de contournement WAF
--script-args=http-vuln-cve2025-55182.waf_bypass=true
Inclut davantage de champs et d’obfuscation pour contourner les intergiciels (middleware).
À l’intérieur de la charge utile, le script injecte :
process.mainModule.require('child_process')
.execSync('echo $((41*271))')
Cette commande est évaluée à 11111 et sert ensuite à vérifier l’exploitation via la détection du condensé de redirection.
Le script tente d’exploiter la vulnérabilité en envoyant en POST la charge utile élaborée vers plusieurs points de terminaison RSC connus :
/
/_action
/api/action
/api
/_next/data
/__rsc
/action
/server
/server/action
Chaque requête est envoyée sous la forme :
http.post(host, port, path, header, payload)
Cas A — Erreur serveur HTTP 500
Un échec de désérialisation réussi indique une vulnérabilité possible :
Cas B — Présence du condensé NEXT_REDIRECT
La charge utile force une redirection côté serveur :
NEXT_REDIRECT;push;/login?a=11111;307;
Le script vérifie dans les en-têtes de réponse :
11111Si trouvé → Très probablement vulnérable
Selon le résultat de la détection, le script remplit un rapport de vulnérabilité NSE standard :
VULNERABLE_VULN ┌──────────────────────┐
│ Start NSE Script │
└─────────────┬────────┘
│
▼
┌────────────────────┐
│ Request "/" │
│ Check headers/body │
└──────────┬─────────┘
│Yes
▼
┌────────────────────┐
│ React/Next.js Detected? ── No ─▶ Exit (Not Vulnerable)
└──────────┬─────────┘
│Yes
▼
┌────────────────────┐
│ Build multipart │
│ exploit payload │
└──────────┬─────────┘
▼
┌─────────────────────────────────┐
│ Loop through RSC endpoints │
│ Send POST exploit payload │
└──────────┬──────────────────────┘
│
┌─────────┴──────────────────────────────┐
▼ ▼
┌───────────────┐ ┌───────────────────┐
│ HTTP 500? │ YES │ Redirect digest? │ YES
└───────┬────────┘ └────────┬──────────┘
│NO │NO
▼ ▼
Continue testing Continue testing
│ │
└──────────────────────────────┬─────────┘
▼
┌────────────────────┐
│ Vulnerable? │
└──────────┬─────────┘
▼
Generate Report
Ce script offre un mécanisme de détection complet, automatisé et sûr pour la vulnérabilité React2Shell à fort impact. Son approche de validation en couches garantit une détection fiable tout en minimisant les faux positifs.