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.
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
- Criticidad Máxima: CVSS 9.8/10. Permite toma de control total del servidor.
- Vector de Ataque: Peticiones HTTP POST con payloads Flight maliciosos (Prototype Pollution).
- Solución Única: Actualizar dependencias
next,react, yreact-doma sus versiones parcheadas. - Mitigación: WAFs tradicionales pueden no detectar el payload serializado.
Resumen del Incidente (TL;DR)
Vulnerabilidad de Ejecución Remota de Código (RCE) en el protocolo Flight de React Server Components.
Aplicaciones usando Next.js 15+ o React 19 con Server Components habilitados.
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.
- Inyección: El atacante envía un payload Flight manipulado.
- Polución: Al deserializar, el servidor sobrescribe métodos fundamentales del prototipo
Objecten el contexto de ejecución de Node.js. - 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.execo 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
| Version | Estado | Version Parcheada |
|---|---|---|
| 16.0.0 - 16.0.6 | Vulnerable | 16.0.7+ |
| 15.5.0 - 15.5.6 | Vulnerable | 15.5.7+ |
| 15.4.0 - 15.4.7 | Vulnerable | 15.4.8+ |
| 15.3.0 - 15.3.5 | Vulnerable | 15.3.6+ |
| 15.2.0 - 15.2.5 | Vulnerable | 15.2.6+ |
| 15.1.0 - 15.1.8 | Vulnerable | 15.1.9+ |
| 15.0.0 - 15.0.4 | Vulnerable | 15.0.5+ |
| 14.x y anteriores | No afectado | N/A |
React
| Version | Estado | Version Parcheada |
|---|---|---|
| 19.2.0 | Vulnerable | 19.2.1+ |
| 19.1.0 - 19.1.1 | Vulnerable | 19.1.2+ |
| 19.0.0 | Vulnerable | 19.0.1+ |
| 18.x y anteriores | No afectado | N/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
1# Para Next.js2npm list next3# o4cat package.json | grep next56# Para React78npm list reactPaso 2: Actualizar dependencias
Opcion A: Actualizar a la ultima version parcheada de tu rama
1# Si estas en Next.js 15.5.x2npm install [email protected]34# Si estas en Next.js 16.x56npm install [email protected]Opcion B: Actualizar package.json manualmente
1{2"dependencies": {3 "next": "15.5.7",4 "react": "19.1.2",5 "react-dom": "19.1.2"6}7}Luego ejecutar:
1npm installPaso 3: Verificar la actualizacion
1npm list next react react-domPaso 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:
-
WAF (Web Application Firewall): Configura reglas para bloquear peticiones con Content-Type
text/x-componentde origenes no confiables -
Deshabilitar RSC temporalmente: Si tu aplicacion no depende criticamente de Server Components, considera deshabilitarlos temporalmente
-
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 gratisIndicadores 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-componenten 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
1# Revisar procesos hijos de Node2ps aux | grep node34# Revisar conexiones de red56netstat -tuln | grep node78# o910lsof -i -P | grep node1112# Revisar archivos modificados recientemente1314find /ruta/aplicacion -mtime -1 -type fCronologia del Incidente
| Fecha | Evento |
|---|---|
| 2025 | Descubrimiento inicial de la vulnerabilidad |
| 03-12-2025 | Divulgacion coordinada |
| 03-12-2025 | Vercel publica parches para Next.js |
| 03-12-2025 | React publica versiones parcheadas |
| 04-12-2025 | Publicacion de este analisis |
Recomendaciones Adicionales
- Monitoreo continuo: Implementa alertas para detectar intentos de explotacion
- Actualizaciones regulares: Mantente al dia con las actualizaciones de seguridad
- Escaneo de dependencias: Usa herramientas como
npm audito Vulnerabbit para monitoreo continuo - 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
- CVE-2025-55182 en CVE.org
- Aviso de Seguridad de Next.js (GHSA-9qr9-h5gf-34mp)
- Blog de Next.js sobre CVE-2025-66478
- Changelog de Vercel
- React Security Releases
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
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.
LinkedInContinúa leyendo
Auditoría de Firebase para SaaS y startups: checklist en 15 puntos (2026)
Tu Firebase ya está en producción. Checklist de 15 puntos: qué auditar, con qué comando y cómo priorizar el fix. Pensado para CTOs y leads, no para reescribir la app.
Seguridad en React y Next.js: las vulnerabilidades más frecuentes en 2026
Las vulnerabilidades más explotadas en apps Next.js 15/16: errores de frontera RSC, Server Actions, fugas de secretos, SSRF, cache poisoning y mitigaciones.
Alternativas a Rapid7 InsightVM para Pymes y Startups (2026)
Rapid7 InsightVM es el estándar enterprise en gestión de vulnerabilidades, pero rara vez encaja en pymes y startups. 5 alternativas reales según escala y presupuesto.