React2Shell - Vulnerabilidad crítica de ejecución remota de código
Admin
December 6, 2025

Translate to:
CVE‑2025‑55182 (apodado “React2Shell”) es una vulnerabilidad crítica de ejecución remota de código no autenticada en React Server Components (RSC), con CVSS 10.0. Afecta al paquete react-server y al protocolo Flight usado en React 19 y frameworks que lo implementan (sobre todo Next.js con App Router), permitiendo que un atacante ejecute JavaScript arbitrario en el servidor enviando peticiones HTTP especialmente manipuladas.
Afectación y versiones vulnerables
- React Server Components: versiones 19.0.0, 19.1.0, 19.1.1 y 19.2.0 de React con soporte de RSC.
- Frameworks impactados:
- Next.js 15.x y 16.x cuando usan App Router y RSC (el CVE-2025‑66478 de Next.js se ha consolidado como duplicado de CVE‑2025‑55182).
- Otros ecosistemas RSC: React Router con APIs RSC, Expo, Redwood, Waku y plugins de Vite/Parcel que integran Flight.
- Riesgo: incluso apps “en blanco” creadas con
create-next-appcon configuración por defecto pueden ser explotables si exponen endpoints RSC.
Detalle técnico del fallo
Naturaleza de la vulnerabilidad
- Tipo de fallo: deserialización insegura y “server‑side prototype pollution” en el protocolo Flight de RSC.
- Vector: el servidor recibe payloads Flight en peticiones HTTP (normalmente POST) y los deserializa sin validación suficiente de estructura ni de claves especiales; un atacante puede inyectar propiedades que terminan modificando prototipos de objetos y forzando ejecución de funciones peligrosas (
child_process.execSync, etc.).
Cambio de código que ilustra el bug
- El parche en
facebook/reactañade comprobación explícita de que la propiedad existe enmoduleExportsantes de devolverla; previamente, se retornabamoduleExports[metadata[NAME]]de forma directa, lo que permitía abusar de propiedades “envenenadas”. - Esta ausencia de comprobación abría la puerta a la contaminación del prototipo y a la ejecución de código en contexto de servidor (“React2Shell”).
Explotación
- El atacante envía un payload Flight malformado que:
- Inyecta referencias a funciones del core de Node (por ejemplo,
vm.runInThisContexto constructores) a través de campos específicos del protocolo. - Encadena esa referencia con llamadas a
process.mainModule.require('child_process').execSync(...)u otras primitivas para ejecutar comandos del sistema.
- Inyecta referencias a funciones del core de Node (por ejemplo,
- PoCs públicos demuestran:
- Creación de un fichero en
/tmpejecutandowhoamicon permisos de root en despliegues Docker típicos de Next.js. - Ejecución de comandos arbitrarios y exfiltración de datos mediante solicitudes HTTP salientes desde el servidor comprometido.
- Creación de un fichero en
Estado de explotación
- Línea temporal:
- 29 nov: el fallo se reporta vía bug bounty a Meta.
- 1–3 dic: se desarrolla el fix, se coordina con proveedores cloud y se publica en npm junto al aviso de seguridad.
- 3–4 dic: investigadores (Datadog, Wiz, etc.) publican análisis y proof‑of‑concepts funcionales.
- A partir del 3–5 dic: se observan campañas de explotación activas, incluyendo grupos vinculados a China contra infraestructuras cloud que ejecutan apps React/Next.js vulnerables.
- Algunos informes indican “explotación fiable casi al 100%” contra configuraciones por defecto de Next.js con App Router.
Mitigación y hardening
Parches y versiones seguras
- Actualizar React y RSC:
- Migrar a las versiones parcheadas posteriores al 3 de diciembre (React > 19.2.0 con el fix integrado).
- Actualizar frameworks:
- Next.js: versiones parcheadas que integran la corrección (sustituyen el CVE‑2025‑66478 por la referencia a CVE‑2025‑55182), disponibles en branches 15.x/16.x.
Medidas adicionales (si no puedes parchear ya mismo)
- Exposición:
- Restringir acceso externo a endpoints RSC/Flight mediante WAF, proxies o reescrituras de rutas; si es posible, desactivar temporalmente RSC en entornos críticos.
- Detección:
- Monitorear patrones anómalos de payloads Flight (valores extraños en IDs, estructuras JSON atípicas) y llamadas sospechosas a
child_process,vm,Functionconstructor y similares en logs de Node.
- Monitorear patrones anómalos de payloads Flight (valores extraños en IDs, estructuras JSON atípicas) y llamadas sospechosas a
- Infraestructura:
- Asegurar que los procesos Node se ejecutan con el mínimo privilegio (sin root en contenedores, sin capacidades extra en el host).
- Revisar accesos salientes (egress) desde servidores de aplicaciones para dificultar exfiltración post‑explotación.
Resumen rápido
- Tipo: RCE no autenticada por deserialización insegura / prototype pollution en React Server Components (Flight), CVSS 10.0.
- Afecta: React 19.x con RSC, Next.js 15.x/16.x con App Router y otros frameworks basados en RSC.
- Estado: PoCs públicos, explotación ya observada en Internet contra despliegues por defecto (“React2Shell”).
- Acción: actualizar React/Next.js ya, limitar exposición de endpoints RSC, reforzar ejecución de Node y monitorizar actividad sospechosa.
Comments (0)
No comments yet. Be the first to comment!