Una explicación de un fallo de deserialización en los paquetes de Server Components de React que puede llevar a una ejecución remota de código sin autenticación. Cubre qué ocurre, a quién afecta y cómo responder, desde el punto de vista del defensor y sin pasos de ataque.
- CVE
- CVE-2026-126187 (GHSA-xqc2-xf4c-x3h3; React: Unauthenticated Remote Code Execution in React Server Components)
- Gravedad
- CVSS v4.0 9.5 (crítica; vector AV:N/AC:L/AT:P/PR:N/UI:N; asignado por GitHub). Análisis de NVD pendiente a 11 de noviembre de 2026
- Tipo
- Deserialización de datos no confiables (CWE-502)
- Impacto
- Ejecución remota de código sin autenticación mediante cargas útiles manipuladas. El aviso dice que solo afecta a casos extremadamente raros en los que las respuestas transportan varios arrays tipados y un valor controlado por el atacante
- Afectado
- react-server-dom-webpack, -parcel y -turbopack en 19.0.0 a 19.0.8, 19.1.0 a 19.1.9, 19.2.0 a 19.2.8 y 19.3.0
- Solución
- 19.0.9 / 19.1.10 / 19.2.9 / 19.3.1 (publicadas el 14 de octubre de 2026)
- Publicado
- 10 de noviembre de 2026 (CVE y aviso de GitHub)
- Explotación
- No se ha informado de explotación. No está en KEV a 12 de noviembre de 2026
Riesgo de esperar
No se necesita autenticación, y si tiene éxito se ejecuta código en el servidor (alto impacto en confidencialidad, integridad y disponibilidad). Las condiciones estrechas ayudan, pero los fallos en servidores expuestos a internet tienden a examinarse una vez que son públicos. Pasar a una versión corregida publicada es una tarea pequeña, así que este sitio ve pocos motivos para aplazarlo por lo estrictas que son las condiciones.
Qué tipo de vulnerabilidad es
El aviso de GitHub dice que cargas útiles manipuladas dirigidas a frameworks que admiten React Server Components pueden llevar a una ejecución remota de código. Está clasificada como CWE-502 (deserialización de datos no confiables).
- No se requiere autenticación (PR:N), funciona por la red y no hace falta interacción del usuario (UI:N).
- El aviso dice que solo afecta a casos extremadamente raros en los que las respuestas transportan varios arrays tipados y un valor controlado por el atacante. AT:P en el vector CVSS v4 (requisitos de ataque presentes) refleja ese límite (nuestra interpretación).
- Los Server Components ejecutan código React en el servidor. El fallo está en los paquetes que procesan ese tráfico.
- El aviso no describe cómo se construye la carga útil ni las condiciones exactas, y este sitio tampoco.
- Ya ha aparecido antes un fallo crítico en este mecanismo. Véase el panorama de vulnerabilidades de Next.js y React.
Alcance afectado
| Elemento | Detalle |
|---|---|
| Paquetes | react-server-dom-webpack / react-server-dom-parcel / react-server-dom-turbopack |
| Versiones afectadas | 19.0.0 a 19.0.8 / 19.1.0 a 19.1.9 / 19.2.0 a 19.2.8 / 19.3.0 |
| Versiones corregidas | 19.0.9 / 19.1.10 / 19.2.9 / 19.3.1 |
| No afectados | Aplicaciones cuyo código React no usa un servidor; aplicaciones que no usan un framework, empaquetador o complemento que admita Server Components (según el aviso) |
| Soluciones provisionales / mitigaciones | Ninguna hallada en el aviso |
| Next.js | No se halló una declaración oficial. Compruebe las versiones de react-server-dom-* de sus dependencias |
- Los rangos de versiones proceden del cuerpo del aviso de GitHub. El registro CVE (registrado por GitHub) formula las versiones de otra manera y su texto contiene una errata, así que contrastamos los números de las versiones corregidas con el cuerpo del aviso y las versiones de React.
- Los tres paquetes se instalan según su empaquetador (webpack, Parcel o Turbopack). Si hay más de uno, compruebe todos.
Cómo comprobar si está afectado
Compruebe si usa Server Components
Averigüe si usa un framework que admita Server Components, como el App Router de Next.js. Una aplicación que ejecuta React solo en el navegador no está afectada, según el aviso.
Compruebe las versiones de react-server-dom-* en el archivo de bloqueo
Busque en package-lock.json, pnpm-lock.yaml o yarn.lock react-server-dom-webpack, react-server-dom-parcel y react-server-dom-turbopack, y vea si la versión cae en los rangos afectados anteriores. Pueden estar presentes como dependencia de un framework aunque usted no las haya instalado directamente. Para comprobaciones automáticas de dependencias, véase vigilar las dependencias con osv-scanner.
Compruebe la versión del framework
Frameworks como Next.js pueden incluir o fijar ellos mismos react-server-dom-*. Compruebe en las notas de versión y los avisos oficiales del framework si hay una respuesta a este CVE. Al comprobarlo el 12 de noviembre de 2026, no hallamos ninguna declaración oficial de Next.js.
Qué hacer hoy
Pase react-server-dom-* a una versión corregida o posterior (máxima prioridad)
Use 19.0.9, 19.1.10, 19.2.9 o 19.3.1 o posterior, según la línea de versiones que use. Para una dependencia directa, suba la versión del paquete y actualice el archivo de bloqueo.
Si pasa por un framework, esté atento a la actualización del framework
Si el framework fija la versión internamente, espere a la actualización del framework o siga su orientación oficial. Mientras no haya orientación, compruebe usted mismo las versiones de las dependencias y pregunte al mantenedor si hace falta. Use anulaciones de dependencias solo después de haber probado que el framework sigue funcionando.
Pruebe tras actualizar y luego despliegue
Compruebe las páginas con Server Components y las Server Actions, y luego despliegue. Vuelva a comprobar las versiones del archivo de bloqueo tras la actualización.
Revise los registros
Busque solicitudes sospechosas a los puntos de acceso de Server Components y errores inesperados del servidor anteriores a la actualización. No se ha informado de explotación, pero los registros son la única prueba que puede comprobar.
Estado de la explotación
- Ni el aviso ni el registro CVE mencionan explotación.
- El CVE no está en el catálogo KEV de CISA (versión de KEV 2026.11.10, comprobada el 12 de noviembre de 2026).
- NVD muestra «Received» y no lo ha analizado. La puntuación CVSS v4 de 9.5 procede de GitHub (la CNA).
- Las versiones corregidas (14 de octubre) salieron unas cuatro semanas antes del CVE y el aviso (10 de noviembre). Las notas de versión solo describen una mejora del protocolo de transporte y no dicen que sea una corrección de vulnerabilidad.
Fuentes
- GitHub — GHSA-xqc2-xf4c-x3h3 React: Unauthenticated Remote Code Execution in React Server Components (versiones afectadas y corregidas, condiciones de no afectación, CVSS v4 9.5)
- React — Aviso de seguridad en el repositorio de React
- React — Versión v19.2.9 (19.0.9, 19.1.10 y 19.3.1 se publicaron el mismo día)
- CVE.org — CVE-2026-126187 (publicado el 10 de noviembre de 2026)
- NVD — CVE-2026-126187 (Received)
- Next.js — Avisos de seguridad de vercel/next.js (no se halló mención de este CVE)
No indicamos el impacto en Next.js y frameworks similares porque no se halló una declaración oficial. Última verificación: 12 de noviembre de 2026.