
Détection du vecteur d'exploitation des React Server Actions – CVE-2025-55182 / CVE-2025-66478
Détection pour CVE-2025-55182 / CVE-2025-66478 – Composants serveur React / Next.js
Ce dépôt contient un script NSE (Nmap Scripting Engine) écrit en Lua conçu pour détecter de manière sûre la vulnérabilité critique connue sous le nom de React2Shell, affectant les implémentations de React Server Components (RSC) et React Server Actions (RSA) – y compris de nombreux déploiements Next.js.
La méthode de détection utilise une technique de canal secondaire non intrusive basée sur le comportement d'erreur côté serveur lors du traitement de charges utiles React Flight malformées. Aucune exploitation, aucune exécution de code et aucune opération dangereuse ne sont effectuées.
React2Shell (CVE-2025-55182 / CVE-2025-66478) est un défaut de conception critique dans les pipelines React Server Components qui peut permettre :
La vulnérabilité est déclenchée lorsque React tente de résoudre des références React Flight falsifiées telles que :
["$1:aa:aa"]
Sur les serveurs vulnérables, cela produit une erreur 500 contenant le motif caractéristique :
E{"digest":"..."}
Ce script détecte ce motif sans tenter d'opérations nuisibles.
✔ Détection sûre et passive (pas d'exploitation, pas de tentatives RCE)
✔ Détecte la signature de plantage React Flight à haute fiabilité
✔ Fonctionne sur HTTP et HTTPS
✔ Chemins et délais d'attente configurables par l'utilisateur
✔ Évite automatiquement les faux positifs des atténuations Vercel/Netlify
✔ Sortie compatible avec les pipelines automatisés et l'ingestion SIEM
✔ Léger et adapté au red teaming, au bug bounty, à la réponse aux incidents et au scanning CI/CD
git clone https://github.com/MoisesTapia/http-react2shell.git
cd http-react2shell
Placez le fichier dans votre répertoire de scripts Nmap :
sudo cp http-react2shell.nse /usr/share/nmap/scripts/
Mettez à jour l'index des scripts :
sudo nmap --script-updatedb
nmap -p80 --script http-react2shell <host>
nmap -p443 --script http-react2shell \
--script-args 'react2shell.path=/'
<host>
nmap -p443 --script http-react2shell \
--script-args 'react2shell.path=/api/action'
<host>
nmap -p443 --script http-react2shell \
--script-args 'react2shell.path=/,react2shell.timeout=20000'
<host>
nmap -iL targets.txt -p80,443 \
--script http-react2shell
nmap -sV -p80,443 \
--script "http-react2shell,http-headers,http-server-header,http-security-headers" \
<host>
PORT STATE SERVICE
443/tcp open https
| http-react2shell:
| Path: /login
| Scheme: auto (http/https decided by Nmap http library)
| No characteristic crash pattern observed.
| This suggests the tested endpoint is not vulnerable or is patched,
|_ but this is not a guarantee (other RSC/Server Actions paths may exist).
PORT STATE SERVICE
443/tcp open https
| http-react2shell:
| Path: /login
| Scheme: auto (http/https decided by Nmap http library)
| VULNERABLE: possible React2Shell (CVE-2025-55182 / CVE-2025-66478)
| Evidence: HTTP 500 + digest-like pattern found in response
|_ Notes: high-fidelity side-channel; verify manually and patch immediately.
PORT STATE SERVICE
443/tcp open https
| http-react2shell:
| Path: /login
| Scheme: auto (http/https decided by Nmap http library)
|_ ERROR: HTTP request failed (connection reset by peer)
https://github.com/lachlan2k/React2Shell-CVE-2025-55182-original-poc
https://github.com/sammwyy/R2SAE
Articles d'analyse technique et documents de recherche sur les composants internes de React Flight
Ce projet est fourni uniquement à des fins éducatives, de recherche et de sécurité défensive. N'analysez pas de systèmes que vous ne possédez pas ou pour lesquels vous n'avez pas d'autorisation explicite de test. Les mainteneurs ne sont pas responsables d'une mauvaise utilisation ou des dommages qui en résultent.
Les pull requests, améliorations et heuristiques de détection supplémentaires sont les bienvenues. Vous pouvez contribuer :
Si cet outil vous aide dans le red teaming, le bug bounty ou la sécurité défensive, pensez à donner une étoile ⭐ au dépôt sur GitHub !