Instituto Nacional de ciberseguridad. Sección Incibe
Instituto Nacional de Ciberseguridad. Sección INCIBE-CERT

Vulnerabilidad en Next.js (CVE-2025-59472)

Gravedad CVSS v3.1:
MEDIA
Tipo:
CWE-400 Consumo de recursos no controlado (Agotamiento de recursos)
Fecha de publicación:
26/01/2026
Última modificación:
24/02/2026

Descripción

Una vulnerabilidad de denegación de servicio existe en versiones de Next.js con Partial Prerendering (PPR) habilitado cuando se ejecuta en modo minimal. El endpoint de reanudación de PPR acepta solicitudes POST no autenticadas con el encabezado &amp;#39;Next-Resume: 1&amp;#39; y procesa datos de estado pospuestos controlados por el atacante. Dos vulnerabilidades estrechamente relacionadas permiten a un atacante bloquear el proceso del servidor a través del agotamiento de la memoria:<br /> <br /> 1. Almacenamiento en búfer ilimitado del cuerpo de la solicitud: El servidor almacena en búfer todo el cuerpo de la solicitud POST en la memoria usando &amp;#39;Buffer.concat()&amp;#39; sin imponer ningún límite de tamaño, permitiendo que cargas útiles arbitrariamente grandes agoten la memoria disponible.<br /> <br /> 2. Descompresión ilimitada (zipbomb): La caché de datos de reanudación se descomprime usando &amp;#39;inflateSync()&amp;#39; sin limitar el tamaño de la salida descomprimida. Una pequeña carga útil comprimida puede expandirse a cientos de megabytes o gigabytes, causando agotamiento de la memoria.<br /> <br /> Ambos vectores de ataque resultan en un error fatal de V8 por falta de memoria (&amp;#39;FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory&amp;#39;) lo que provoca la terminación del proceso de Node.js. La variante zipbomb es particularmente peligrosa ya que puede eludir los límites de tamaño de solicitud de los proxies inversos mientras sigue causando una gran asignación de memoria en el servidor.<br /> <br /> Para verse afectado, debe tener una aplicación ejecutándose con &amp;#39;experimental.ppr: true&amp;#39; o &amp;#39;cacheComponents: true&amp;#39; configurado junto con la variable de entorno NEXT_PRIVATE_MINIMAL_MODE=1.<br /> <br /> Considere seriamente actualizar a 15.6.0-canary.61 o 16.1.5 para reducir el riesgo y prevenir problemas de disponibilidad en las aplicaciones Next.

Productos y versiones vulnerables

CPE Desde Hasta
cpe:2.3:a:vercel:next.js:*:*:*:*:*:node.js:*:* 15.0.0 (incluyendo) 15.6.0 (excluyendo)
cpe:2.3:a:vercel:next.js:*:*:*:*:*:node.js:*:* 16.0.0 (incluyendo) 16.1.5 (excluyendo)
cpe:2.3:a:vercel:next.js:15.6.0:-:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:15.6.0:canary0:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:15.6.0:canary1:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:15.6.0:canary10:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:15.6.0:canary11:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:15.6.0:canary12:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:15.6.0:canary13:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:15.6.0:canary14:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:15.6.0:canary15:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:15.6.0:canary16:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:15.6.0:canary17:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:15.6.0:canary18:*:*:*:node.js:*:*
cpe:2.3:a:vercel:next.js:15.6.0:canary19:*:*:*:node.js:*:*


Referencias a soluciones, herramientas e información