
React2Shell (CVE-2025-55182) Exploit
Un script de Python que proporciona un shell interactivo para explotar la vulnerabilidad crítica de RCE (CVE-2025-55182) en aplicaciones vulnerables de React Server Components y Next.js. Este exploit apunta a la falla de deserialización que permite la ejecución remota de código no autenticado. Incluye un sistema modular para añadir técnicas de bypass de WAF.
[!NOTE] Este exploit está diseñado para interactuar con el endpoint del protocolo RSC vulnerable. Los resultados de la ejecución se capturan a través del mecanismo de respuesta del servidor. Los comandos que no produzcan salida devolverán
(empty).
[!CAUTION] Este código es solo para fines de investigación y educación. Está destinado a ayudar a comprender, detectar y remediar la vulnerabilidad CVE-2025-55182. No lo utilice contra sistemas sin autorización explícita.
El uso de este script es bajo el propio riesgo del usuario, y el/los autor(es) no asumen ninguna responsabilidad por cualquier mal uso o consecuencias no deseadas.
Al usar este código, el usuario reconoce y acepta lo siguiente:
- El usuario es el único responsable de cualquier consecuencia legal derivada del uso de este script.
- El usuario no responsabilizará al/los autor(es) por daños, pérdidas o acciones legales resultantes del uso de este código.
- El usuario acepta cumplir con todas las leyes y regulaciones aplicables.
- El usuario reconoce que usar este script contra sistemas sin permiso puede violar leyes y términos de servicio, lo que podría conllevar sanciones graves.
- Se recomienda al usuario consultar a su propio asesor legal antes de usar este código.
Este exploit cuenta con un sistema dinámico de módulos de bypass de WAF. Los módulos se almacenan en el directorio waf_modules como archivos Python separados. Cada módulo debe definir una función modify_request(body, headers) que reciba el cuerpo y las cabeceras de la solicitud predeterminada, los modifique según sea necesario para el bypass y devuelva el nuevo body, headers.
bypass_custom.py) en el directorio waf_modules que contenga la función modify_request.--help para ver las opciones de bypass disponibles (por ejemplo, --bypass-custom para bypass_custom.py). Usa la opción correspondiente para activar el módulo.Ejemplo: Se incluye un módulo bypass_vercel.py como ejemplo, que implementa técnicas potencialmente efectivas contra despliegues de Vercel.
--modify-request)El script permite la modificación directa de ciertos atributos del objeto requests.Session utilizado para realizar solicitudes HTTP. Esto proporciona un control granular sobre aspectos como la verificación SSL, los tiempos de espera (timeouts) y potencialmente otros ajustes a nivel de sesión.
--modify-request <KEY> <VALUE>. <KEY> corresponde a un atributo del objeto requests.Session (por ejemplo, verify, timeout).<VALUE>: true/false se convierten en booleanos, las cadenas numéricas se convierten en enteros o flotantes; de lo contrario, permanecen como cadena.--modify-request verify True--modify-request verify False (equivalente a la antigua opción --insecure)python CVE-2025-55182.py --help-modify-request para ver una visualización en forma de árbol de las opciones comunes.requirements.txt)python -m venv venv y source venv/bin/activate en sistemas tipo Unix o venv\Scripts\activate en Windows).
pip install -r requirements.txt
waf_modules:
mkdir waf_modules
bypass_vercel.py) dentro de este directorio.Prepara un entorno vulnerable (solo para pruebas):
docker run --rm -p 127.0.0.1:3000:3000 ghcr.io/l4rm4nd/cve-2025-55182:latest
Más información: https://github.com/l4rm4nd/CVE-2025-55182
Ejecuta el script:
python CVE-2025-55182.py --help # To see all options, including WAF bypasses
# Example with a bypass module:
python CVE-2025-55182.py --host 127.0.0.1 --port 3000 --endpoint / --bypass-vercel
Si no se usan argumentos de línea de comandos, el script solicitará interactivamente el host, el puerto y el endpoint.
Interactúa con el shell:
exit o quit para finalizar la sesión del shell.