React2Shell - CVE-2025-55182 - Riesgo de RCE

React2Shell: CVE-2025-55182 y el riesgo de RCE en Next.js

TL; DR

React2Shell (CVE-2025-55182) crea una crítica Riesgo de RCE en Componentes del servidor React (RSC) y marcos que los integran, incluidos Next.js. Porque la vulnerabilidad vive dentro de la RSC Capa de serialización y deserialización, los atacantes pueden enviar una solicitud HTTP diseñada y activar ejecución remota de código no autenticado, incluso cuando los equipos ejecutan configuraciones de marco predeterminadas. Next.js Las aplicaciones enfrentan la mayor exposición porque aceptan y procesan Reacción de vuelo cargas útiles a través de HTTP de forma predeterminada.

La falla afecta a varias versiones de Paquetes de servidor ReactLos atacantes no necesitan lógica de aplicación personalizada para explotarla. Los investigadores de seguridad muestran una fiabilidad cercana al 100 %, y los primeros análisis revelan que muchos entornos de nube son vulnerables. Next.js instancias. Los equipos deben aplicar el parche inmediatamente y validar su ecosistema completo para reducir el Riesgo de RCE en React2Shell (CVE-2025-55182).

Una vulnerabilidad crítica informada a través del programa de recompensas por errores de Meta el 29 de noviembre ha desencadenado respuestas urgentes en todo el ecosistema de JavaScript.

Designada CVE-2025-55182, divulgado el 3 de diciembre ahora conocido como React2Shell es una vulnerabilidad de máxima gravedad que afecta Componentes del servidor reaccionar Junto con los frameworks que los incorporan. Inicialmente, se asignó un identificador de vulnerabilidad independiente para Next.js (CVE-2025-66478), pero el NVD posteriormente lo consolidó en el CVE principal de React como una entrada duplicada.

El problema subyacente es el mismo: el manejo inseguro de las cargas útiles RSC serializadas que pueden activarse mediante una solicitud HTTP. Esto facilita que un agente malicioso envíe una solicitud HTTP manipulada que da como resultado la ejecución de JavaScript arbitrario en el servidor después de ser... deserializado por React.

Descripción general de CVE-2025-55182

Los componentes de React Server están profundamente integrados en los frameworks modernos y, en muchos casos, están habilitados por defecto. Por ello, las aplicaciones pueden estar expuestas a... React2Shell (CVE-2025-55182) Incluso si nunca definen explícitamente un punto final de la Función de Servidor. La implementación de RSC sigue presente, y eso por sí solo es suficiente para activar rutas de código vulnerables y crear un problema significativo. Riesgo de RCE.

El fallo se origina en la forma en que Protocolo de vuelo de Reactl procesa ciertas cargas útiles estructuradas. Las versiones anteriores intentaban recorrer las rutas de los objetos proporcionados en la carga útil sin verificar que la estructura fuera válida o esperada. Un atacante podría manipular este proceso y, en última instancia, lograr la ejecución del código en el servidor. No se requiere autenticación, configuración especial ni lógica específica de la aplicación. Dado que el problema existe en las configuraciones predeterminadas, standard Las implementaciones se exponen sin necesidad de condiciones inusuales.

La explotación ocurre cuando los atacantes envían solicitudes HTTP POST maliciosas que abusan de “vm.runInThisContextMecanismo mediante Acciones del Servidor. Si bien React no expone directamente el endpoint vulnerable, Next.js sí lo hace, creando un auténtico vector de ataque remoto. 

Next.js acepta las cargas útiles de Flight de cualquier solicitud, las procesa sin la validación adecuada y las pasa al deserializador de React. El sistema trata estas entradas externas como confiables, lo que permite a los atacantes lograr... ejecución remota de código a través de puntos finales de acceso público con privilegios completos del proceso Node.js en el servidor de destino. 

La gravedad aumenta significativamente porque las configuraciones predeterminadas siguen siendo vulnerables a React2Shell (CVE-2025-55182) y el resultante Riesgo de RCE. En standard Aplicación Next.js que creas con create-next-app Se expone sin necesidad de código personalizado ni cambios de configuración. Los investigadores de seguridad confirman una fiabilidad de explotación de casi el 100 % e informan que el 39 % de los entornos en la nube ejecutan instancias vulnerables, mientras que el 44 % de todos los entornos ejecutan aplicaciones Next.js expuestas públicamente afectadas por... React2Shell.

Comprender la exposición a React2Shell

Las versiones vulnerables abarcan múltiples lanzamientos:

Componente Versiones afectadas
Paquete web react-server-dom 19.0, 19.1.0, 19.1.1, 19.2.0
paquete dom del servidor react 19.0, 19.1.0, 19.1.1, 19.2.0
react-server-dom-turbopack 19.0, 19.1.0, 19.1.1, 19.2.0

Dado que muchos frameworks integran la compatibilidad con RSC en su núcleo, las aplicaciones suelen heredar el código vulnerable sin darse cuenta. Cualquier framework o paquete que incluya estos paquetes puede exponer la aplicación a React2Shell (CVE-2025-55182) y su riesgo de RCE. Esto incluye:

  • Next.js (enrutador de aplicaciones)
  • Vista previa de React Router RSC
  • Complemento Vite RSC
  • Complemento Parcel RSC
  • SDK de Redwood
  • Waku
  • Exposición

Next.js se ve particularmente afectado porque utiliza puntos finales relacionados con RSC a través de HTTP de forma predeterminada. Las versiones que comienzan con 14.3.0 compilaciones canarias, junto con la mayoría 15.x y principios 16.x Las versiones contienen la implementación vulnerable. Cualquiera que ejecute la vulnerabilidad canaria... 14.3.0-canario.77 o más tarde debería volver a la estable 14.x rama hasta que se publique una versión parcheada de Canary.

Versiones parcheadas de Next.js incluir:

Componente Versiones parcheadas
Next.js 15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7, 16.0.7

Pruebas de concepto públicas y detección confiable

Tras la divulgación de la vulnerabilidad, comenzaron a circular numerosas supuestas pruebas de concepto. Muchas de ellas eran inexactas o se basaban en suposiciones erróneas. El autor original de la vulnerabilidad, Lachlan Davidson, confirmó públicamente... react2shell que las PoC de GitHub que circulan no coinciden con el exploit compartido de forma privada con los mantenedores de React/Next.js y proporcionado su propia PoC

Un problema importante con los primeros intentos públicos es que no reconocen que la explotación tiene éxito contra standard Implementaciones de Next.js sin necesidad de que exista lógica de aplicación específica o funciones del lado del servidor.

Investigadores de seguridad de diversas organizaciones han enfatizado que detectar la vulnerabilidad requiere más que simplemente identificar la presencia de RSC. El equipo de Assetnote publicó un método de detección confiable y una escáner Capaz de confirmar el problema sin usar ninguna lógica de explotación. Metasploit pronto tendrá un exploit disponible También para esta vulnerabilidad. 

El enfoque de detección aprovecha la forma en que React Server maneja las referencias de propiedades de objetos utilizando delimitadores de dos puntos dentro de ReactFlightClientConfigBundlerWebpack.js/requireModule() Función. Cuando las versiones vulnerables procesan una carga útil multiparte especialmente estructurada que intenta recorrer rutas de objetos anidados inexistentes, desencadenan respuestas de error predecibles. Una solicitud de diagnóstico envía un patrón de referencia como `$1:a:a` Emparejado con un objeto vacío. Las implementaciones vulnerables intentan resolver esto mediante un acceso a una propiedad anidada en un valor indefinido, lo que genera una excepción. El servidor devuelve un estado 500 con un patrón distintivo de resumen de errores en el cuerpo de la respuesta. 

export function requireModule<T>(metadata: ClientReference<T>): T {
  let moduleExports = __webpack_require__(metadata[ID]);
  if (isAsyncImport(metadata)) {
    if (typeof moduleExports.then !== 'function') {
      // This wasn't a promise after all.
    } else if (moduleExports.status === 'fulfilled') {
      // This Promise should've been instrumented by preloadModule.
      moduleExports = moduleExports.value;
    } else {
      throw moduleExports.reason;
    }
  }
  if (metadata[NAME] === '*') {
    // This is a placeholder value that represents that the caller imported this
    // as a CommonJS module as is.
    return moduleExports;
  }
  if (metadata[NAME] === '') {
    // This is a placeholder value that represents that the caller accessed the
    // default property of this if it was an ESM interop module.
    return moduleExports.__esModule ? moduleExports.default : moduleExports;
  }
  return moduleExports[metadata[NAME]];
}

Acciones inmediatas para las organizaciones que enfrentan React2Shell (CVE-2025-55182) y el riesgo de RCE

Realice un análisis exhaustivo de su base de código y de las aplicaciones implementadas Para localizar versiones vulnerables de paquetes. Preste especial atención a las dependencias directas de paquetes del servidor React, las implementaciones de RSC a nivel de framework (Next.js, Waku, Redwood, etc.), las aplicaciones creadas con `create-next-app` o herramientas de andamiaje similares, y las aplicaciones en contenedores que puedan contener imágenes base obsoletas.

Análisis de composición de software (SCA) herramientas como xygenis SCA Puede descubrir automáticamente las dependencias afectadas en todo su inventario de software. 

Parche inmediatamente:

Actualización a versiones parcheadas como React (19.0.1, 19.1.2, 19.2.1), Next.js (15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7, 16.0.7) y cualquier paquete de framework que incluya RSC. Estas actualizaciones introducen una validación estricta para la gestión de la carga útil de RSC y evitan la desreferenciación insegura de propiedades que permite la explotación. 

Herramientas de remediación automatizadas, como Función de remediación automática de Xygeni, puede acelerar el proceso en bases de código grandes.

Implementar protecciones temporales de WAF:

Mientras los parches se propagan a través de su implementación pipelineActive las reglas del Firewall de Aplicaciones Web para obtener protección inmediata. Los principales proveedores de servicios en la nube han publicado conjuntos de reglas de emergencia. Cloudflare:Protección automática para todos los niveles cuando el tráfico de React se procesa mediante proxy, así como AWS, Akamai, Fastly, Google Cloud tener reglas defensivas similares disponibles Habilite estos controles inmediatamente para crear una capa protectora durante el período de transición.

Monitorizar tráfico HTTP sospechoso:

Configurar el registro y las alertas para indicadores de intentos de explotación: cargas útiles del protocolo RSC Flight malformadas o inesperadas, patrones inusuales de errores 500 en puntos finales de RSC, solicitudes POST con encabezados sospechosos `Next-Action` o `Next-Router-State-Tree`, solicitudes repetidas a rutas `/_next/` con cargas útiles de varias partes

Verifique la lista de materiales de su software:

Muchos frameworks agrupan las dependencias RSC de forma transparente, haciéndolas invisibles en las revisiones de dependencias superficiales. Examine su... SBOM para garantizar: que no queden dependencias transitivas en paquetes de servidor React vulnerables y que las actualizaciones del marco no hayan introducido inadvertidamente implementaciones de RSC más antiguas.

Pensamientos Finales

React2Shell se encuentra entre las vulnerabilidades más graves del ecosistema JavaScript en los últimos años, no por la complejidad del exploit, sino por la profunda penetración de RSC en las herramientas actuales. Ahora que los parches están disponibles en todo el ecosistema, los equipos deben implementar las actualizaciones en producción lo antes posible.

Si su aplicación utiliza las funciones del servidor de React, ya sea directa o indirectamente, debe tratar esta vulnerabilidad como una solución de máxima prioridad.

sca-tools-software-herramientas-de-analisis-de-composicion
Priorice, solucione y proteja sus riesgos de software
Además, te ofrecemos una prueba gratuita de 7 días de nuestra Business Edition para que puedas explorar las funciones avanzadas de la plataforma SecurityScorecard.
No se requiere tarjeta de crédito

Asegure el desarrollo y entrega de software

con la suite de productos Xygeni