
Una herramienta de prueba de concepto para demostrar la vulnerabilidad crítica React2Shell
Una herramienta de prueba de concepto para demostrar la vulnerabilidad crítica React2Shell (CVE-2025-55182 / CVE-2025-66478) únicamente en entornos de pruebas locales y autorizados.
CVE-2025-55182 (React2Shell) es una vulnerabilidad crítica de ejecución remota de código (RCE) sin autenticación en el protocolo "Flight" de React Server Components (RSC). Se asignó un identificador separado, CVE-2025-66478, para Next.js, pero desde entonces fue rechazado como duplicado de CVE-2025-55182, ya que ambos comparten la misma causa raíz.
chmod +x pwn-nextjs.sh
./pwn-nextjs.sh [TARGET_URL] [COMMAND]
# Target specific URL
./pwn-nextjs.sh https://vulnerable-app.example.com "whoami"
root
La vulnerabilidad se origina en paquetes específicos de React y afecta a cualquier framework que los incluya.
No afectados: Next.js 13.x, las versiones estables de Next.js 14.x, las aplicaciones Pages Router y Edge Runtime no están afectados.
El protocolo Flight de RSC serializa datos para la comunicación cliente-servidor. La vulnerabilidad reside en la lógica de deserialización del servidor, que expande de forma insegura las propiedades de los objetos de la carga útil entrante sin una validación adecuada. Esto permite a un atacante inyectar claves maliciosas (como __proto__ o constructor) en la solicitud, lo que provoca contaminación de prototipos.
Una vez contaminada la cadena de prototipos, el servidor sigue rutas de ejecución influenciadas por el atacante. Esto puede encadenarse para ejecutar código JavaScript arbitrario con privilegios del servidor, lo que conduce a una ejecución remota de código (RCE) completa.
Los investigadores de seguridad han observado explotaciones exitosas que conducen a:
.aws/credentials).El parcheo es obligatorio y la única forma de eliminar por completo la vulnerabilidad. No existe una opción de configuración para deshabilitar la ruta de código vulnerable.
# For Next.js users, upgrade to the latest patched version in your release line.
# Example: If you are on Next.js 15.5.x:
npm install [email protected]
# Also ensure React dependencies are updated:
npm install react@latest react-dom@latest
Verifique que sus archivos package-lock.json o yarn.lock reflejen las versiones parcheadas de los paquetes react-server-dom-* (19.0.1, 19.1.2 o 19.2.1).
Mientras se aplica el parche, despliegue reglas de firewall de aplicaciones web (WAF) para bloquear los intentos de explotación:
AWSManagedRulesKnownBadInputsRuleSet (v1.24+) incluye reglas para este CVE.cve-canary disponible.Nota: Las reglas WAF son una mitigación temporal e incompleta. No reemplazan la necesidad de parchear.
Revise los registros en busca de estas señales de intentos de explotación:
next-action o rsc-action-id. Cuerpos de solicitud que contengan patrones como $@ o "status":"resolved_model".whoami, id, uname), lecturas de /etc/passwd o escrituras de archivos en /tmp/ (por ejemplo, pwned.txt) por procesos de Node.js.Esta herramienta demuestra una vulnerabilidad con una puntuación CVSS de 10.0 (Severidad Máxima) que está siendo explotada activamente con patrocinio estatal.
Recuerde: Esta herramienta demuestra por qué el parcheo es urgente. Utilice este conocimiento para mejorar la seguridad y defender los sistemas, no para comprometerlos. Asegúrese de que todas sus dependencias estén actualizadas a las versiones parcheadas indicadas anteriormente.
TAHA MOUNIR
| Componente | Versiones Afectadas | Versiones Parcheadas | Notas |
|---|
| Paquetes React ( react-server-dom-webpack, -parcel, -turbopack) | 19.0.0, 19.1.0, 19.1.1, 19.2.0 | 19.0.1, 19.1.2, 19.2.1 | Origen de la falla upstream. |
| Next.js (App Router) | 15.x, 16.x, 14.3.0-canary.77 y posteriores | 15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7, 16.0.7 | Framework afectado principal. |
| Otros Frameworks | React Router, Waku, RedwoodJS, Parcel (@parcel/rsc), Vite RSC Plugin | Actualice a versiones que utilicen paquetes React parcheados (>19.0.1, 19.1.2, 19.2.1). | Vulnerable si se usan los paquetes React afectados. |