Een nieuw beveiligingsprobleem in Next.js zou aanvallers in staat kunnen stellen code op een server uit te voeren via ImageResponse, de functie die Open Graph en andere sociale preview-afbeeldingen genereert, zei Vercel.
Het risico is van toepassing wanneer een app waarden die een aanvaller beheert, zoals tekst die wordt gelezen vanaf de verzoek-URL, in de afbeelding plaatst. Vercel, die Next.js ontwikkelt, heeft de fout op 22 september verholpen in versie 16.3.6.
De fout, bijgehouden als CVE-2026-94545heeft invloed op Next.js 16.2.0 tot en met 16.3.5 wanneer ImageResponse wordt uitgevoerd op de Node.js-runtime, die Next.js standaard gebruikt. Het advies van Vercel beoordeelt het als kritisch, met een CVSS-score van 9,5. De Edge-versie van ImageResponse wordt niet beïnvloed, en Next.js 15 ook niet.
ImageResponse gebruikt Satori, een Vercel-bibliotheek, om de afbeeldingslay-out naar SVG-code te converteren voordat de uiteindelijke PNG wordt gegenereerd. Getroffen apps zijn apps die “door aanvallers gecontroleerde waarden doorgeven aan SVG-inhoud, attributen of stijlen tijdens het genereren van afbeeldingen”, aldus het advies.
Het voorbeeld van het advies neemt een waarde uit de aanvraag-URL en plaatst deze in een SVG-titelelement. Er staat niet of tekst in gewone elementen, zoals een kop binnen een div, ook meetelt.
Om te ontdekken waar een app de functie gebruikt, zoekt u naar ImageResponse geïmporteerd uit next/og, bijvoorbeeld in routehandlers en in opengraph-image-bestanden. Routehandlers maken het beeld wanneer er een verzoek binnenkomt. Een opengraph-imagebestand kan worden gemaakt tijdens het bouwen of wanneer een verzoek binnenkomt.
Vanaf 23 september vond The Hacker News geen openbare meldingen van aanvallen waarbij de fout werd gebruikt, en geen openbare exploitcode.
De oplossing is Next.js 16.3.6, de enige gepatchte versie, geïnstalleerd met npm install [email protected]. Vanaf 23 september vermeldde het npm-register geen vaste release voor de 16.2-regel, dus apps op 16.2 moeten verhuizen naar 16.3.6. Next.js 15.5.26 voegt extra beveiligingsverbetering toe voor next/og op de 15.5-regel.
Als het upgraden moet wachten, is de oplossing van het advies om door de aanvaller gecontroleerde waarden buiten de SVG-inhoud, kenmerken en stijlen te houden die Node.js ImageResponse weergeeft. Het advies suggereert niet om over te schakelen naar de niet-getroffen Edge-versie, en de Next.js-documentatie markeert de Edge-runtime als verouderd.
Bij controles door The Hacker News op 23 september heeft npm audit Next.js 16.3.5, een getroffen versie, niet gemarkeerd. Het advies stond ook nog niet vermeld in de GitHub Advisory Database en er was geen CVE-record voor CVE-2026-94545 gepubliceerd.
Controleer de Next.js-versie rechtstreeks. Satori is gebundeld in het Next.js-pakket, dus een lockfile vermeldt het niet als een afhankelijkheid van Next.js.
Het advies en de aankondiging van Vercel zeggen niet of apps die op Vercel worden gehost, beschermd zijn. Voor twee kritieke Next.js-fouten die in augustus zijn verholpen, zei het bedrijf dat gehoste apps beschermd waren en geen upgrade nodig hadden.
Het advies en de aankondiging van Vercel bieden ook geen manier om te controleren of een getroffen route vóór de patch is misbruikt. Getroffen versies zijn beschikbaar sinds Next.js 16.2 op 18 maart werd uitgebracht.
De bug zelf zit in Satori. Satori’s eigen advies, dat dezelfde dag werd gepubliceerd, zegt dat bepaalde waarden de SVG-uitvoer bereikten zonder op de juiste manier te zijn ontsnapt. Een speciaal gemaakte waarde kan dan worden gelezen als SVG-code in plaats van platte tekst.
In Next.js kunnen dergelijke waarden kwetsbaarheden bereiken in andere bibliotheken waarvan Next.js afhankelijk is en tot code-uitvoering leiden, aldus Vercel. Het heeft die bibliotheken niet genoemd.
Satori’s advies beoordeelt dezelfde CVE als gemiddeld, met een score van 5,3, en zegt dat de impact afhangt van hoe de SVG-uitvoer wordt gebruikt. Ontwikkelaars die Satori rechtstreeks gebruiken, moeten deze updaten naar versie 0.33.5, die de oplossing heeft.