Se ha corregido una vulnerabilidad (CVE-2025-55182) en los componentes de servidor del framework web React (RSC) que podría permitir la ejecución de código arbitrario en el servidor mediante el envío de una solicitud a un controlador de servidor. La vulnerabilidad se ha calificado como crítica (10 sobre 10). Afecta a los componentes experimentales react-server-dom-webpack, react-server-dom-parcel y react-server-dom-turbopack, que se utilizan para ejecutar funciones y generar elementos de interfaz en el servidor, en lugar de en el cliente.
El problema se debe a la deserialización insegura de los datos recibidos en las solicitudes HTTP a los controladores del servidor. Los controladores "vm#runInThisContext", "vm#runInNewContext", "child_process#execFileSync" y "child_process#execSync" pueden usarse para ejecutar comandos del sistema o código JavaScript en el contexto del proceso actual (evitando el aislamiento del entorno de pruebas). También es posible usar los controladores "fs#readFileSync" y "fs#writeFileSync" para leer y escribir archivos arbitrarios en el servidor, sujeto a los derechos de acceso actuales. No se requiere autenticación para el ataque. Hay un prototipo de exploit 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 vulnerabilidad del sistema depende del uso de los componentes vulnerables del servidor react-server-dom-webpack, react-server-dom-parcel y react-server-dom-turbopack. Las aplicaciones que no usan react-server no se ven afectadas. Se desconoce hasta qué punto la vulnerabilidad afecta a los sistemas de producción que utilizan React. React es uno de los frameworks web más populares (usado por aproximadamente el 6% de los sitios web), y los componentes vulnerables se mantienen en el repositorio principal y se incluyen en las versiones. Los componentes vulnerables también son compatibles con frameworks basados en React, como Next.js y react-router. Según Wiz Research, se identificaron instancias vulnerables en el 39% de los entornos de nube analizados.
Por otro lado, la generación de contenido del lado del servidor mediante componentes de servidor de React no es una función frecuente (la mayoría de los sitios web de React solo renderizan la interfaz del lado del cliente), y los componentes vulnerables se marcan como experimentales y no se garantiza su correcto funcionamiento. Estos componentes tienen un número relativamente bajo de descargas directas desde el repositorio de NPM: react-server-dom-webpack (670 000 por semana), react-server-dom-parcel (7000) y react-server-dom-turbopack (32 000). En comparación, el paquete NPM de React tiene 45 millones de descargas por semana.
La vulnerabilidad está presente en las versiones 9.0.0, 19.1.0, 19.1.1 y 19.2.0 de React, y se corrigió en las versiones 19.0.1, 19.1.2 y 19.2.1 de React. Los componentes vulnerables también se utilizan en los paquetes Next.js (16 millones de descargas semanales), react-router (20 millones de descargas semanales), waku, @parcel/rsc, @vitejs/plugin-rsc y rwsdk.
Una vulnerabilidad (CVE-2025-66478) en el framework Next.js afecta a las aplicaciones que utilizan App Router y Next.js 15.x y 16.x. Se dice que la vulnerabilidad afecta a la configuración predeterminada de Next.js (la aplicación predeterminada creada por la utilidad create-next-app es vulnerable). Se recomienda a los usuarios instalar la actualización de Next.js 15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7 o 16.0.7 lo antes posible.
Fuente: opennet.ru
