
CVE-2025-55182 + CVE-2025-66478 - Next.js/React Server Components Ejecución Remota de Código
Este repositorio contiene un exploit de Prueba de Concepto (PoC) para CVE-2025-55182, una vulnerabilidad crítica de Ejecución Remota de Código (RCE) que afecta a React Server Components en las versiones 19.x de React y 15.x y 16.x de Next.js cuando se utiliza App Router. La vulnerabilidad tiene una puntuación CVSS de 10.0, lo que representa un riesgo grave.
El núcleo de la vulnerabilidad reside en el manejo incorrecto de la deserialización dentro de React Server Components. Específicamente, el exploit aprovecha la deserialización @ para manipular un objeto Chunk y secuestrar su propiedad then. Al establecer el status en RESOLVED_MODEL, se llama a la función initializeModelChunk con un chunk falso controlado enteramente por el atacante. Esto permite la manipulación del objeto _response, lo que en última instancia conduce a la ejecución de código arbitrario.
El exploit apunta al proceso de deserialización de Blob, específicamente a la llamada response._formData.get, para inyectar código controlado por el atacante que luego se ejecuta.
El script exploit.py proporciona una PoC que demuestra la vulnerabilidad. Crea un payload malicioso que manipula el proceso de deserialización para ejecutar un comando en el servidor objetivo.
@: El exploit utiliza el mecanismo de deserialización @ para obtener el control de un objeto Chunk.Chunk.prototype.then: La propiedad then del prototipo de Chunk se sobrescribe, de modo que cuando el chunk es esperado/resuelto, se llamará al código controlado por el atacante.RESOLVED_MODEL: Establecer el status del chunk en RESOLVED_MODEL activa la función initializeModelChunk, que interactúa con el objeto _response controlado por el atacante._formData.get: El exploit manipula response._formData.get para devolver una función con código controlado por el atacante. Esta función se ejecuta a continuación.pip install -r requirements.txt.Guarde el script: Guarde el código Python proporcionado como exploit.py.
Ejecute el script: Ejecute el script desde la línea de comandos, proporcionando la URL objetivo y el comando a ejecutar como argumentos:
python exploit.py <target_url> <command_to_execute>
Por ejemplo:
python exploit.py http://localhost:3000 "ls -l"

Esta PoC se proporciona "tal cual" sin ninguna garantía. El autor no es responsable de ningún uso indebido o daño causado por este script. Úselo bajo su propio riesgo.