CVE-2025-55182: Vulnerabilidad en React Server Components

CVE-2025-55182 permite RCE sin autenticación en Next.js y React 19. Aprende cómo parchar y asegurar tu aplicación.

E
Equipo Vulnerabbit
10 min de lectura

Se ha revelado de forma responsable una vulnerabilidad critica en React Server Components (CVE-2025-55182). Esta vulnerabilidad permite ejecucion remota de codigo (RCE) sin autenticacion y afecta a React 19 y a los frameworks que lo utilizan, incluido Next.js (CVE-2025-66478).

Puntos Clave

  1. Criticidad Máxima: CVSS 9.8/10. Permite toma de control total del servidor.
  2. Vector de Ataque: Peticiones HTTP POST con payloads Flight maliciosos (Prototype Pollution).
  3. Solución Única: Actualizar dependencias next, react, y react-dom a sus versiones parcheadas.
  4. Mitigación: WAFs tradicionales pueden no detectar el payload serializado.

Resumen del Incidente (TL;DR)

¿Qué es?

Vulnerabilidad de Ejecución Remota de Código (RCE) en el protocolo Flight de React Server Components.

¿A quién afecta?

Aplicaciones usando Next.js 15+ o React 19 con Server Components habilitados.

¿Cómo se arregla?

Actualizando inmediatamente a las versiones parcheadas (ver tabla abajo).

Análisis Técnico Profundo: "React2Shell"

conocida en la comunidad de seguridad como "React2Shell", esta vulnerabilidad (CVE-2025-55182) reside en el corazón de la arquitectura de React Server Components: el protocolo de serialización Flight.

La Raíz del Problema: Deserialización Insegura

El protocolo Flight está diseñado para transmitir árboles de componentes de React desde el servidor al cliente (y viceversa mediante Server Actions). Para lograr esto, serializa estructuras de datos complejas, incluyendo promesas y referencias a objetos.

La vulnerabilidad surge porque el parser de Flight en versiones afectadas de react-server-dom-* realiza una deserialización insegura de objetos controlados por el usuario. Específicamente, no valida adecuadamente las claves de los objetos durante la reconstrucción del árbol de datos.

Mecanismo de Ataque: Prototype Pollution

Un atacante puede enviar una petición HTTP POST a un endpoint RSC (comúnmente una Server Action o el renderizado inicial) inyectando propiedades especiales como __proto__ o constructor en el payload serializado.

  1. Inyección: El atacante envía un payload Flight manipulado.
  2. Polución: Al deserializar, el servidor sobrescribe métodos fundamentales del prototipo Object en el contexto de ejecución de Node.js.
  3. Ejecución (RCE): Mediante "gadgets" internos o abusando de la lógica de la aplicación (Logic Abuse), el atacante redirige el flujo de ejecución para invocar child_process.exec o similares.

¿Por qué falla el WAF? Los payloads de Flight son flujos de texto complejos y anidados. Un WAF tradicional que busca firmas como <script> o eval() no detectará la estructura semántica de un ataque de polución de prototipos dentro de un formato serializado propietario.

¿Por qué es "Zero-Click"?

A diferencia de vulnerabilidades XSS que requieren que una víctima visite un enlace, este ataque se realiza directamente contra el servidor. Cualquier endpoint expuesto de Next.js (App Router) que procese peticiones RSC es un vector de entrada potencial, sin necesidad de autenticación previa.

Versiones Afectadas

Next.js

VersionEstado

Version Parcheada

16.0.0 - 16.0.6Vulnerable16.0.7+
15.5.0 - 15.5.6Vulnerable15.5.7+
15.4.0 - 15.4.7Vulnerable15.4.8+
15.3.0 - 15.3.5Vulnerable15.3.6+
15.2.0 - 15.2.5Vulnerable15.2.6+
15.1.0 - 15.1.8Vulnerable15.1.9+
15.0.0 - 15.0.4Vulnerable15.0.5+
14.x y anterioresNo afectadoN/A

React

VersionEstado

Version Parcheada

19.2.0Vulnerable19.2.1+
19.1.0 - 19.1.1Vulnerable19.1.2+
19.0.0Vulnerable19.0.1+
18.x y anterioresNo afectadoN/A

Otros Frameworks

Cualquier framework que utilice React Server Components con React 19 puede estar afectado, incluyendo:

  • Waku: Verificar version de React
  • Remix (con RSC experimental): Verificar configuracion
  • Implementaciones personalizadas de RSC: Altamente probable que esten afectadas

Plan de Acción

Paso 1: Identificar tu version actual

Terminal
1# Para Next.js
2npm list next
3# o
4cat package.json | grep next
5
6# Para React
7
8npm list react

Paso 2: Actualizar dependencias

Opcion A: Actualizar a la ultima version parcheada de tu rama

Terminal
1# Si estas en Next.js 15.5.x
2npm install [email protected]
3
4# Si estas en Next.js 16.x
5
6npm install [email protected]

Opcion B: Actualizar package.json manualmente

package.json
1{
2"dependencies": {
3 "next": "15.5.7",
4 "react": "19.1.2",
5 "react-dom": "19.1.2"
6}
7}

Luego ejecutar:

Terminal
1npm install

Paso 3: Verificar la actualizacion

Terminal
1npm list next react react-dom

Paso 4: Redesplegar la aplicacion

Asegurate de redesplegar la aplicacion en todos los entornos:

  • Desarrollo
  • Staging/QA
  • Produccion

Mitigacion temporal (si no puedes actualizar inmediatamente)

Si por alguna razon no puedes actualizar inmediatamente, considera estas mitigaciones temporales:

  1. WAF (Web Application Firewall): Configura reglas para bloquear peticiones con Content-Type text/x-component de origenes no confiables

  2. Deshabilitar RSC temporalmente: Si tu aplicacion no depende criticamente de Server Components, considera deshabilitarlos temporalmente

  3. Limitar acceso: Restringe el acceso a la aplicacion solo a IPs conocidas mientras aplicas el parche

Importante: Estas mitigaciones son temporales. La unica solucion definitiva es actualizar a una version parcheada.

Como Detectar si tu Sitio es Vulnerable

Verificacion manual

Revisa las versiones en tu package.json y package-lock.json (o pnpm-lock.yaml).

Verificacion automatizada

Hemos actualizado nuestro escaner gratuito para detectar automaticamente si tu sitio web esta corriendo una version vulnerable de Next.js.

Verifica tu sitio ahora

Usa nuestro Quick Scan para detectar tecnologias vulnerables y problemas de configuracion en segundos.

Escanear mi sitio gratis

Indicadores de Compromiso (IoC)

Si sospechas que tu aplicacion pudo haber sido explotada, busca los siguientes indicadores:

En logs del servidor

  • Peticiones POST inusuales a rutas de Next.js (/_next/...)
  • Content-Type text/x-component en peticiones de origenes desconocidos
  • Errores de deserializacion seguidos de comportamiento anomalo

En el sistema

  • Procesos hijos inesperados del proceso Node.js
  • Conexiones de red salientes a IPs desconocidas
  • Archivos modificados recientemente en directorios del servidor
  • Nuevos usuarios o claves SSH agregadas

Comandos utiles para investigacion

Terminal
1# Revisar procesos hijos de Node
2ps aux | grep node
3
4# Revisar conexiones de red
5
6netstat -tuln | grep node
7
8# o
9
10lsof -i -P | grep node
11
12# Revisar archivos modificados recientemente
13
14find /ruta/aplicacion -mtime -1 -type f

Cronologia del Incidente

FechaEvento
2025

Descubrimiento inicial de la vulnerabilidad

03-12-2025Divulgacion coordinada
03-12-2025Vercel publica parches para Next.js
03-12-2025React publica versiones parcheadas
04-12-2025Publicacion de este analisis

Recomendaciones Adicionales

  1. Monitoreo continuo: Implementa alertas para detectar intentos de explotacion
  2. Actualizaciones regulares: Mantente al dia con las actualizaciones de seguridad
  3. Escaneo de dependencias: Usa herramientas como npm audit o Vulnerabbit para monitoreo continuo
  4. Plan de respuesta: Ten un plan documentado para responder a vulnerabilidades criticas

Preguntas Frecuentes (FAQ)

¿Estoy afectado si uso el Pages Router?

No, esta vulnerabilidad afecta especificamente al App Router y a React Server Components. Si tu aplicacion utiliza exclusivamente Pages Router y no implementa Server Actions o Server Components, el riesgo es mitigado, aunque se recomienda actualizar de todas formas.

¿Afecta esto a aplicaciones creadas con Create React App?

Solo si has migrado a React 19 y estas utilizando una implementacion personalizada de Server Components. Las aplicaciones SPA client-side tradicionales no utilizan el protocolo Flight de la misma manera.

¿Como puedo simular el ataque para probar mis defensas?

No recomendamos realizar pruebas de explotacion en entornos de produccion. Utiliza un entorno de sandbox y herramientas de escaneo de seguridad autorizadas como Vulnerabbit para verificar tu postura de seguridad sin riesgo.

Referencias y Mas Informacion


Este articulo sera actualizado conforme surja nueva informacion sobre la vulnerabilidad. Ultima actualizacion: 4 de diciembre de 2025.

Comprueba si tu dominio es vulnerable

Nuestro escáner gratuito analiza SSL, cabeceras de seguridad, DNS y configuración de email en menos de 5 minutos. Sin instalar nada.

Lanzar Auditoría Gratuita
Equipo Vulnerabbit

Escrito por

Equipo Vulnerabbit

Equipo de Investigación en Ciberseguridad

El equipo de Vulnerabbit combina experiencia en seguridad ofensiva, cloud security y cumplimiento normativo para ayudar a empresas a proteger su superficie de ataque.

LinkedIn
Escanea tu dominio gratis