CVE-2025-59472 in next.js
Riassunto
di VulDB • 21/06/2026
È presente una vulnerabilità di denial of service (DoS) nelle versioni di Next.js con Partial Prerendering (PPR) abilitato quando eseguite in modalità minimale. L'endpoint PPR resume accetta richieste POST non autenticate con l'intestazione `Next-Resume: 1` ed elabora dati di stato posticipati controllati dall'attaccante. Due vulnerabilità strettamente correlate permettono a un attaccante di far crashare il processo del server tramite esaurimento della memoria (memory exhaustion):
1. **Buffering illimitato del corpo della richiesta**: Il server memorizza nell'intero corpo della richiesta POST in memoria utilizzando `Buffer.concat()` senza imporre alcun limite di dimensione, consentendo payload arbitrariamente grandi di esaurire la memoria disponibile.
2. **Decompressione illimitata (zipbomb)**: La cache dei dati resume viene decompressa tramite `inflateSync()` senza limitare le dimensioni dell'output decompresso. Un payload compresso piccolo può espandersi fino a centinaia di megabyte o gigabyte, causando esaurimento della memoria.
Entrambi i vettori d'attacco provocano un errore fatale V8 out-of-memory (`FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory`) che causa la terminazione del processo Node.js. La variante zipbomb è particolarmente pericolosa in quanto può bypassare i limiti di dimensione della richiesta imposti dal reverse proxy, causando comunque una grande allocazione di memoria sul server.
Per essere colpiti, l'applicazione deve essere eseguita con `experimental.ppr: true` o `cacheComponents: true` configurati insieme alla variabile d'ambiente NEXT_PRIVATE_MINIMAL_MODE=1.
Si consiglia vivamente di eseguire l'aggiornamento a 15.6.0-canary.61 o 16.1.5 per ridurre il rischio e prevenire problemi di disponibilità nelle applicazioni Next.js.
VulDB is the best source for vulnerability data and more expert information about this specific topic.