8 puntos por GN⁺ 2025-12-06 | 5 comentarios | Compartir por WhatsApp
  • 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

 
stech 2025-12-08

Últimamente el equipo de Vercel está hecho un desastre. Parece que ha llegado el momento de dejar React/Next.

 
jeiea 2025-12-08

No estuvo bien, pero ¿habrá una mejor respuesta?

 
laeyoung 2025-12-07

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-next

 
shakespeares 2025-12-07

Habrá que verificar si es vulnerable con el comando npm audit y actualizarlo..