
Script d'exploitation et scanner basé sur NodeJS pour la vulnérabilité "React2Shell" des composants serveur React (CVE-2025-55182).
Un scanner léger et automatisé de Preuve de Concept (PoC) et de masse pour la vulnérabilité critique d'exécution de code à distance (RCE) dans les React Server Components (React 19 / Next.js).
À DES FINS ÉDUCATIVES ET DE RECHERCHE EN SÉCURITÉ UNIQUEMENT.
Cet outil est conçu pour aider les professionnels de la sécurité et les administrateurs à vérifier la vulnérabilité de leurs propres systèmes. L'auteur n'est pas responsable de toute mauvaise utilisation, des dommages ou des actes illégaux commis à l'aide de ce code.
CVE-2025-55182 est une vulnérabilité d'exécution de code à distance dans react-server-dom-webpack, un package central utilisé par Next.js (App Router) et React 19.
La vulnérabilité permet à un attaquant non authentifié d'injecter des charges utiles malveillantes dans les React Server Actions. En manipulant le processus de désérialisation, l'attaquant peut accéder au constructeur JavaScript Function et exécuter des commandes système arbitraires sur le serveur.
Lire en détail : https://react.dev/blog/2025/12/11/denial-of-service-and-source-code-exposure-in-react-server-components
Versions affectées :
react-server-dom-webpack : 19.0.0 - 19.2.0next : 13.4.x, 14.x (pre-14.2.35), 15.x (pre-15.5.9)Ce script mis à jour utilise des techniques d'exploitation avancées pour être plus fiable :
Next-Action valide. Fonctionne sur toute instance Next.js vulnérable sans reconnaissance manuelle.Location. Cela évite les erreurs 500 et fournit une sortie propre.Clonez le dépôt :
git clone https://github.com/sangleshubham/React-Security-CVE-2025-55182-Exploit.git
Naviguez jusqu'au répertoire :
cd React-Security-CVE-2025-55182-Exploit
Vérifiez la version de Node.js : Assurez-vous d'avoir Node.js installé (v18 ou supérieur est recommandé).
node -v
(Remarque : Ce script utilise les bibliothèques standard de Node.js, donc aucun npm install n'est requis.)
Le script react2shell.js détecte automatiquement si vous scannez une ou plusieurs cibles.
La commande par défaut exécutée est id.
# Cible unique
node react2shell.js http://localhost:3000 ls
# Plusieurs cibles
node react2shell.js http://localhost:3000 [http://staging.example.com] ls
Pour exécuter une commande spécifique, fournissez-la comme dernier argument.
# Syntaxe : node script.js <URL> <COMMANDE>
node react2shell.js http://localhost:3000 <commande>
⚠️ VULNÉRABLE : L'outil a exécuté la commande avec succès et a fait passer la sortie via l'en-tête de redirection.
[*] Starting Universal Scan...
[*] Payload Command: "id"
⚠️ VULNÉRABLE (http://localhost:3000)
Output: uid=0(root) gid=0(root) groups=0(root)
🛡️ SÉCURISÉ : Le serveur a rejeté la charge utile ou est patché.
🛡️ SÉCURISÉ (http://google.com) | Status: 405
❌ ERREUR DE CONNEXION : Le script n'a pas pu atteindre le serveur.
❌ ERREUR DE CONNEXION (http://bad-url.com) | fetch failed
Si votre application est vulnérable, mettez à jour vos dépendances immédiatement.
Pour Next.js :
# Next.js 14
npm install [email protected] react@latest react-dom@latest
# Next.js 15
npm install [email protected] react@latest react-dom@latest
Pour les autres frameworks (Waku, Remix, etc.) :
Assurez-vous que react-server-dom-webpack est mis à jour vers v19.2.1 ou supérieur.
Distribué sous la licence MIT. Voir LICENSE pour plus d'informations.