Next.js 16.3.6 corregge una critica vulnerabilità di esecuzione di codice in ImageResponse
Immagine generata con IA

Next.js 16.3.6 corregge una critica vulnerabilità di esecuzione di codice in ImageResponse

Vercel ha corretto CVE-2026-94545, una critica vulnerabilità di Next.js in ImageResponse che poteva consentire a testo immagine appositamente creato di eseguire codice su server Node.js.

Vercel ha rilasciato Next.js 16.3.6 per correggere una critica vulnerabilità di sicurezza nella funzionalità ImageResponse del framework, che i siti web usano per creare immagini di anteprima Open Graph e altre immagini social, le immagini che appaiono quando un link viene condiviso sui social media o nelle app di chat. La vulnerabilità, tracciata come CVE-2026-94545, può consentire a un attaccante di eseguire codice su un server quando un'applicazione inserisce valori controllati dall'attaccante, ad esempio testo letto da un URL di richiesta, nel processo di generazione delle immagini. Vercel, l'azienda che mantiene Next.js, ha annunciato la correzione il 22 settembre e classifica il problema come critico con un punteggio CVSS (Common Vulnerability Scoring System) di 9.5.

Le versioni vulnerabili sono Next.js 16.2.0 fino alla 16.3.5 quando ImageResponse viene eseguito sul runtime Node.js, che è l'ambiente JavaScript lato server predefinito in Next.js. La versione Edge di ImageResponse non è interessata, e anche Next.js 15 non è interessato. ImageResponse utilizza una libreria chiamata Satori, anch'essa sviluppata da Vercel, per convertire il layout dell'immagine in SVG (Scalable Vector Graphics, un formato immagine basato su testo) prima che venga creata l'immagine PNG finale. Secondo l'avviso di Vercel, la vulnerabilità riguarda le app che passano valori controllati dall'attaccante nel contenuto, negli attributi o negli stili SVG durante la generazione delle immagini. L'esempio dell'avviso prende un valore da un URL di richiesta e lo inserisce all'interno di un elemento title SVG. Non dice se anche il testo in elementi ordinari, come un'intestazione all'interno di un div, venga conteggiato.

Per trovare dove un'applicazione utilizza la funzionalità, gli sviluppatori dovrebbero cercare ImageResponse importato da next/og, ad esempio nei route handler e nei file opengraph-image. I route handler creano l'immagine quando arriva una richiesta, mentre un file opengraph-image può crearla sia in fase di build che quando arriva una richiesta. Al 23 settembre, The Hacker News ha riferito di non aver trovato segnalazioni pubbliche di attacchi che sfruttano questa vulnerabilità e nessun codice di exploit pubblico.

L'unica versione corretta è Next.js 16.3.6, che può essere installata con npm install next@16.3.6. Al 23 settembre, il registro npm non aveva una release corretta per la linea 16.2, quindi i siti sulla 16.2 devono passare alla 16.3.6. Next.js 15.5.26 aggiunge ulteriore hardening di sicurezza per next/og sulla linea 15.5. Se l'aggiornamento deve attendere, la soluzione alternativa dell'avviso è tenere i valori controllati dall'attaccante fuori dal contenuto, dagli attributi e dagli stili SVG che ImageResponse su Node.js renderizza. L'avviso non suggerisce di passare alla versione Edge non interessata, e la documentazione di Next.js contrassegna il runtime Edge come deprecato.

I controlli di The Hacker News del 23 settembre hanno anche mostrato alcune lacune nel rilevamento. Lo strumento npm audit non ha segnalato Next.js 16.3.5, una versione interessata. L'avviso non era ancora elencato nel GitHub Advisory Database, e nessun record CVE per CVE-2026-94545 era stato pubblicato in quel momento. L'avviso e l'annuncio di Vercel non forniscono inoltre alcun modo per verificare se una route interessata sia stata abusata prima della patch, e non dicono se le app ospitate su Vercel siano protette. Per due critiche vulnerabilità di Next.js corrette ad agosto, l'azienda ha detto che le app ospitate erano protette e non necessitavano di aggiornamento, ma nessuna dichiarazione del genere appare per questa vulnerabilità. Le versioni interessate sono disponibili da quando Next.js 16.2 è stato rilasciato il 18 marzo.

Il bug stesso è in Satori, e l'avviso di Satori, pubblicato lo stesso giorno, dice che certi valori raggiungevano il suo output SVG senza essere adeguatamente sottoposti a escape. Un valore appositamente creato poteva quindi essere letto come codice SVG invece che come testo semplice. In Next.js, tali valori potevano raggiungere vulnerabilità in altre librerie da cui Next.js dipende e portare all'esecuzione di codice, ha detto Vercel. Vercel non ha nominato tali librerie. L'avviso di Satori classifica lo stesso CVE come moderato, con un punteggio di 5.3, e dice che l'impatto dipende da come viene utilizzato l'output SVG. Gli sviluppatori che usano Satori direttamente dovrebbero aggiornarlo alla versione 0.33.5, che contiene la correzione.

Poiché Satori è incluso nel pacchetto Next.js, non appare come dipendenza separata nel lockfile di un progetto, quindi affidarsi a uno scanner di dipendenze potrebbe non rilevarlo. Vercel raccomanda di controllare direttamente la versione di Next.js. Per i team che gestiscono molte applicazioni JavaScript, AEU-I offre IT e consulenza security-first che possono aiutare con la pianificazione delle patch e le revisioni delle dipendenze.

Come Proteggerti

  1. Aggiorna il software del tuo sito alla versione 16.3.6 di Next.js il prima possibile se il tuo sito lo utilizza.
  2. Chiedi al tuo sviluppatore di controllare direttamente il numero di versione di Next.js invece di affidarti a uno scanner di sicurezza, perché alcuni scanner non hanno rilevato il difetto.
  3. Finché non puoi aggiornare, non lasciare che testo proveniente da URL dei visitatori o input degli utenti venga usato per creare immagini di anteprima social.
  4. Tieni d'occhio l'avviso di sicurezza ufficiale di Vercel e il record CVE, e applica eventuali ulteriori indicazioni che pubblicano.
  5. Se il tuo team usa lo strumento per immagini Satori da solo, aggiorna Satori alla versione 0.33.5.

Vulnerabilità e Soluzioni

I Termini Spiegati

  • Next.js Un framework popolare per costruire siti web e applicazioni web con JavaScript.
  • ImageResponse Una funzionalità di Next.js che crea immagini per anteprime sui social media e card per link.
  • SVG Scalable Vector Graphics, un formato immagine basato su testo usato per disegnare forme e testo sulle pagine web.
  • CVSS Common Vulnerability Scoring System, una scala numerica che valuta quanto è grave una vulnerabilità di sicurezza.
  • Node.js runtime L'ambiente che esegue codice JavaScript su un server invece che in un browser.
  • npm Uno strumento e registro online usato per installare e gestire pacchetti e dipendenze JavaScript.
  • dependency Una libreria o pacchetto software su cui un altro programma fa affidamento per funzionare.

Servizi AEU correlati