Next.js corregge due falle RCE critiche e un CPU DoS
Next.js ha corretto due falle critiche di remote code execution (RCE), che potrebbero consentire a un attaccante non autenticato di eseguire codice su un server, oltre a un problema di denial of service di gravità elevata. L'aggiornamento out-of-band, pubblicato il 14 ottobre al di fuori del normale ciclo di release, è disponibile come Next.js 16.4.1 e 15.5.28, le attuali release Active e Maintenance con supporto a lungo termine. Vercel, che sviluppa Next.js, ha assegnato a entrambe le vulnerabilità di code execution un punteggio di 9,5 secondo il Common Vulnerability Scoring System (CVSS).
Il primo problema RCE, identificato come GHSA-673q-mjm6-r5xr, interessa Next.js dalla versione 16.0.0 alla 16.4.0. L'esposizione è limitata alle applicazioni App Router che abilitano Cache Components e contengono una funzione use cache che restituisce più di una typed array, una raccolta strutturata di valori binari. Vercel raccomanda comunque l'aggiornamento anche quando un'applicazione non contiene una funzione di questo tipo. Il problema si trova all'interno di React Server Components, una funzionalità di React che esegue i componenti dell'interfaccia utente sul server anziché interamente nel browser del visitatore.
L'advisory correlato di React riguarda le versioni dalla 19.0.0 alla 19.3.0 di react-server-dom-webpack, react-server-dom-parcel e react-server-dom-turbopack. React descrive la situazione interessata come estremamente rara e legata a risposte che contengono più typed array insieme a un valore controllato da un attaccante. Sebbene la debolezza risieda negli stessi tre package associati a React2Shell, il suo ambito è notevolmente più ristretto. React2Shell era una falla di gravità massima divulgata nel dicembre 2025 e sfruttata su vasta scala.
La seconda vulnerabilità RCE è CVE-2026-96889, identificata anche come GHSA-2464-fhr4-w9xw. Si tratta di un errore di gestione della memoria in librsvg, un componente open source utilizzato per renderizzare immagini Scalable Vector Graphics (SVG). Next.js accede a librsvg tramite sharp, il package di elaborazione delle immagini incluso. Gli intervalli vulnerabili di Next.js vanno dalla versione 10.0.0 alla 15.5.27 e dalla 16.0.0 alla 16.4.0. Secondo l'advisory, la code execution è possibile sui sistemi Linux basati su glibc, una libreria software fondamentale utilizzata da molte distribuzioni Linux, quando un'applicazione passa a sharp un file SVG fornito da un attaccante.
Next.js non ottimizza i file SVG per impostazione predefinita. Questo percorso di elaborazione diventa disponibile quando un'applicazione abilita l'impostazione dangerouslyAllowSVG. La libreria interessata può anche renderizzare immagini per next/og, che genera immagini di anteprima per i social, quando tale funzionalità utilizza Node.js runtime, l'ambiente lato server che esegue JavaScript. Next.js 16.4.1 richiede sharp 0.35.5, che include librsvg 2.63.2 con la patch. Per il ramo della versione 15, la falla relativa alle immagini viene risolta da Next.js 15.5.28 insieme a sharp 0.35.5 o versione successiva.
Il terzo problema, GHSA-p3m5-59mp-jv5r, può causare denial of service, impedendo ai visitatori legittimi di utilizzare un'applicazione. Interessa Next.js dalla versione 13.0.0 alla 15.5.27 e dalla 16.0.0 alla 16.4.0. Un'applicazione App Router è esposta quando definisce almeno una Server Action, una funzione eseguita sul server in risposta a una richiesta dell'applicazione. Richieste appositamente create possono portare un processo server al pieno utilizzo della CPU, impedendogli di gestire altro traffico. Le applicazioni che utilizzano Pages Router, oppure le applicazioni App Router senza Server Actions, non sono interessate.
L'architettura di hosting può modificare l'esposizione. Netlify ha dichiarato che la sua piattaforma non esegue il percorso interessato dell'image optimizer e ha descritto l'impatto sul proprio ambiente come limitato, pur raccomandando comunque l'aggiornamento. Questa distinzione non cambia la correzione generale: gli operatori devono installare Next.js 16.4.1 per la versione 16 oppure 15.5.28 per la versione 15, quindi ricompilare e ridistribuire l'applicazione affinché il codice corretto sia effettivamente in esecuzione.
Gli amministratori della versione 15 devono verificare separatamente sharp dopo l'aggiornamento di Next.js. Sebbene l'advisory di Vercel affermi che i package manager dovrebbero fornire automaticamente la release corretta di sharp, Next.js 15.5.28 consente ancora il ramo vulnerabile sharp 0.34.x. L'aggiornamento di un'installazione esistente potrebbe quindi lasciare al suo posto la dipendenza precedente. Gli amministratori possono eseguire npm ls sharp e aggiornare esplicitamente sharp alla versione 0.35.5 o successiva se il risultato mostra una versione precedente. La versione 16.4.1 richiede già sharp 0.35.5.
Se non è possibile completare immediatamente un aggiornamento di Next.js, il rischio relativo a SVG può essere ridotto installando sharp 0.35.5 o versione successiva. L'advisory di sharp documenta inoltre il blocco del rendering SVG mediante sharp.block({ operation: ["VipsForeignLoadSvg"] }). Non esiste alcun workaround per la falla RCE di Cache Components o per la falla di denial of service di Server Actions; l'installazione della release corretta di Next.js è quindi l'unica soluzione indicata per questi due problemi.
La scansione delle dipendenze potrebbe non rilevare l'intero insieme di problemi. Al 15 ottobre, gli advisory relativi a Cache Components e Server Actions non disponevano di identificatori CVE ed erano assenti dal feed degli advisory npm utilizzato da npm audit. La vulnerabilità nell'elaborazione delle immagini compare invece tramite l'advisory di sharp. Gli operatori dei siti web non dovrebbero pertanto considerare un risultato senza problemi di npm audit come conferma che una release vulnerabile di Next.js sia sicura.
Questo è il terzo problema di code execution da agosto legato all'elaborazione delle immagini in Next.js. Una falla di agosto in libheif, raggiungibile tramite sharp, poteva eseguire codice quando l'image optimizer elaborava un'immagine AVIF appositamente creata. A settembre, un problema in next/og consentiva a testo controllato da un attaccante di modificare il file SVG generato. Next.js 16.4.1 non modifica il codice dell'image optimizer rispetto alla versione 16.4.0; risolve il più recente problema relativo alle immagini portando la versione di sharp inclusa alla 0.35.5.
CVE-2026-96889 è diventata pubblica il 23 settembre ed è stata corretta in sharp il 27 settembre. Red Hat ha assegnato al problema sottostante un punteggio di 7,8 e ha affermato che lo sfruttamento richiedeva l'interazione dell'utente, per esempio l'apertura di un file malevolo. Vercel ha valutato l'esposizione di Next.js con un punteggio di 9,5 perché è raggiungibile attraverso una rete. Il ricercatore che ha segnalato la debolezza di librsvg afferma che essa è anche all'origine della falla di settembre in next/og, per la quale è stato successivamente pubblicato un exploit funzionante diretto a una specifica configurazione server. Il maintainer di sharp avverte che il risultato può essere una code execution oppure un crash, a seconda della build di Node.js presente sul server, perché i file binari ufficiali di Node.js non dispongono di protezioni contro questo tipo di attacco alla memoria.
Per le aziende che stanno esaminando l'infrastruttura web e le responsabilità relative agli aggiornamenti, AEU-I offre servizi IT, infrastruttura e consulenza con un approccio security-first. Al 15 ottobre non risultavano segnalazioni pubbliche di attaccanti che avessero sfruttato una qualsiasi delle tre vulnerabilità corrette il 14 ottobre.