- React Server Components tiene una vulnerabilidad de ejecución remota de código (RCE) sin autenticación que permite ejecutar código arbitrario, por lo que se requiere actualizar de inmediato
- Next.js también se ve afectado y es vulnerable cuando se usa la funcionalidad App Router. Next.js la está rastreando como CVE-2025-66478
- La causa raíz de la vulnerabilidad es la contaminación de prototipos en el lado del servidor (server-side prototype pollution), que permite al atacante manipular el prototipo de un objeto JavaScript y ejecutar comandos mediante
child_process.execSync, entre otros
- El código PoC (proof of concept, prueba de concepto) público se difundió rápidamente y Datadog detectó intentos de ataque reales desde más de 800 IPs al 5 de diciembre
- Con una puntuación CVSS de 10/10, esta vulnerabilidad es especialmente grave en Next.js 15.x~16.x, y aplicar los parches más recientes es imprescindible
Resumen principal de la vulnerabilidad
- El 3 de diciembre se descubrió una vulnerabilidad en React Server Components que permite la ejecución remota de código sin autenticación y se registró como CVE-2025-55182
- La vulnerabilidad se ejecuta en el servidor, lo que permite al atacante correr código de forma remota
- Next.js también se ve afectado porque incluye el componente vulnerable
- Next.js la está gestionando por separado como CVE-2025-66478, pero NVD no la reconoce oficialmente
- La puntuación CVSS es de 10/10, y Datadog confirmó que el ataque es muy sencillo y reproducible incluso en una app Next.js creada con una plantilla base
- Al 5 de diciembre se observaron intentos reales de ataque con cargas útiles weaponizadas
Versiones afectadas y mitigación
- Bibliotecas de React vulnerables:
react-server-dom-parcel, react-server-dom-webpack, react-server-dom-turbopack
- Versiones vulnerables: 19.0~19.2.0 / versiones parcheadas: 19.0.1, 19.1.2, 19.2.1
- Versiones afectadas de Next.js
- Vulnerables: 15.x, 16.x, a partir de 14.3.0-canary.77
- Patched: 15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7, 16.0.7
- La vulnerabilidad puede verificarse con el comando
npm audit
- La solución es actualizar a una versión parcheada
Análisis de la vulnerabilidad y PoC
- El 3 de diciembre se realizó un commit del código de parche en el repositorio de React
- Se cambió la función
requireModule para que compruebe si existe la propiedad del objeto
- Esta vulnerabilidad es del tipo contaminación de prototipo del lado del servidor, que permite ejecutar código arbitrario al contaminar el prototipo de un objeto
- PoCs públicos:
- El primer PoC (
ejpir/CVE-2025-55182-poc) está en estado no funcional
- El segundo PoC (
msanft/CVE-2025-55182) funciona también en una app Next.js base
- El 5 de diciembre, el reportero original Lachlan Davidson publicó tres variantes de PoC oficiales
Actividad de ataque real
- Datadog detectó actividad de escaneo desde el 3 de diciembre a las 22:00 (UTC)
- Al 5 de diciembre se confirmó escaneo e intentos de ataque desde más de 800 IPs
- Dos o más organizaciones fueron objetivo, y se observó actividad continua desde el 4 de diciembre
- Flujo del ataque:
- Al inicio, escaneo basado en un PoC no funcional
- Luego, sustitución de payload por el PoC de Moritz Sanft y, por último, por el de Davidson
- Payloads observados:
- Lectura de
/etc/passwd, ejecución de whoami, descarga remota de scripts mediante curl·wget, entre otros
- Algunos incluyen robo de variables de entorno (
.env) y función de recolección de información del sistema
Concepto de contaminación de prototipo del lado del servidor
- Tipo CWE-1321, ocurre cuando el control de los atributos del prototipo del objeto es incorrecto
- Suele explotarse en frontend mediante XSS, pero en el lado del servidor puede derivar en RCE o lectura de archivos
- En el código de ejemplo, la contaminación mediante
__proto__ modifica Object.prototype, por lo que todos los objetos creados después se ven afectados
- Como resultado, al llamar
spawnSync('sh') se ejecuta un comando malicioso proporcionado como entrada
Detección y protección de Datadog
- Datadog Code Security detecta bibliotecas vulnerables en GitHub o en runtime
- Ofrece funciones de búsqueda relacionadas con CVE-2025-55182 o CVE-2025-66478
- Datadog App and API Protection (AAP) puede bloquear ataques en runtime
- Datadog Workload Protection ofrece reglas personalizadas para detectar la ejecución de comandos como
wget, curl y bash en procesos Node
Referencias
- Recomendaciones oficiales: React, Next.js
- Respuesta de proveedores cloud: AWS, Vercel, Google Cloud, Akamai, Cloudflare
- Análisis de empresas de seguridad: Wiz, Tenable, SearchLight Cyber
- Alertas CERT: CERT-EU, CERT-SE, CERT-AU
- Escáner público: assetnote/react2shell-scanner
5 comentarios
Últimamente el equipo de Vercel está hecho un desastre. Parece que ha llegado el momento de dejar React/Next.
No estuvo bien, pero ¿habrá una mejor respuesta?
Parece que el equipo de Vercel lanzó un comando de npx para actualizar de una sola vez a las versiones afectadas por este problema.
npx fix-react2shell-nextHabrá que verificar si es vulnerable con el comando
npm audity actualizarlo..Vulnerabilidad de ejecución remota de código (RCE) en React y Next.js