
Preuve de concept (PoC) fonctionnelle pour CVE-2025-55182 (React2Shell) - Exécution de code à distance non authentifiée dans Next.js 15.0.0 via React Server Components
⚠️ UNIQUEMENT À DES FINS ÉDUCATIVES
Ce dépôt est créé strictement à des fins éducatives et de recherche. Il démontre une vulnérabilité critique dans les composants serveur React (Next.js) afin d'aider les développeurs à comprendre les risques et l'importance de mettre à jour leurs dépendances.
N'UTILISEZ PAS CE CODE EN PRODUCTION NI CONTRE DES SYSTÈMES QUI NE VOUS APPARTIENNENT PAS.
Ce projet reproduit CVE-2025-55182 (également connue sous le nom de « React2Shell »), une vulnérabilité d'exécution de code à distance (RCE) affectant les composants serveur React dans les applications Next.js.
multipart/form-data forgée qui exploite la logique de désérialisation des composants serveur React pour exécuter du code JavaScript arbitraire sur le serveur.
app/page.js : Contient le tableau de bord d'exploitation interactif. Ce composant client vous permet d'exécuter des commandes RCE directement depuis le navigateur.app/actions.js : Contient une action serveur standard. La vulnérabilité réside dans la logique d'analyse du framework avant que cette action ne soit exécutée.exploit.js : Un script Node.js autonome pour démontrer l'exploit de manière programmatique.Clonez le dépôt :
git clone https://github.com/pkrasulia/CVE-2025-55182-NextJS-RCE-PoC.git
cd react-cve-test
(Facultatif) Utilisez la version correcte de Node.js :
nvm use
Installez les dépendances (cela installera les versions vulnérables) :
npm ci --legacy-peer-deps
# OR
npm install --force
Démarrez le serveur de développement :
npm run dev
Le serveur devrait démarrer sur http://localhost:3000.
http://localhost:3000 dans votre navigateur.whoami, ls -la ou cat package.json).Vous pouvez exécuter le script d'exploitation directement depuis votre terminal :
# Basic usage
node exploit.js http://localhost:3000 "whoami"
# Open Calculator (Linux) - use '&' to run in background
node exploit.js http://localhost:3000 "gnome-calculator &"
Pour corriger cette vulnérabilité dans vos propres projets :
npm install next@latest react@latest react-dom@latest
L'auteur n'est pas responsable de toute mauvaise utilisation de ces informations. Ce projet vise à aider les chercheurs en sécurité et les développeurs à améliorer la sécurité de leurs applications.