Vercel heeft op 14 oktober een Next.js out-of-band patch uitgebracht om meerdere ernstige kwetsbaarheden te fixen. Het gaat om twee kritieke fouten die onbeauthenticeerde remote code execution (RCE) mogelijk kunnen maken, plus een high-severity denial-of-service (DoS) probleem. Voor organisaties die Next.js draaien is dit geen “later wel”-update: upgrade zo snel mogelijk.
De fixes zijn opgenomen in de ondersteunde LTS-versies: Next.js 16.4.1 (voor versie 16) en Next.js 15.5.28 (voor versie 15). Hieronder zet ik uiteen welke onderdelen geraakt zijn, wie vooral risico loopt en wat je praktisch moet doen.
Welke kwetsbaarheden zijn er opgelost?
De patch dekt drie verschillende issues. Twee daarvan zijn RCE-kwetsbaarheden met een hoge impact, en de derde issue verhoogt de kans op uitval door overbelasting.
1) RCE in React Server Components
De eerste code-execution fout zit in React Server Components, een React-functie waarmee UI-componenten op de server worden uitgevoerd. React’s advisory beschrijft het probleem als een situatie in extreem zeldzame gevallen waarin antwoorden transporteren dat meerdere typed arrays bevatten en er een door een aanvaller beïnvloedde waarde meespeelt.
In een Next.js-app hangt de blootstelling onder meer samen met het gebruik van een use cache-achtige constructie en met features die achter een instelling hangen. Vercel adviseert echter ook te upgraden als je niet expliciet denkt dat je zo’n functie gebruikt.
2) RCE via SVG-verwerking (librsvg via sharp)
De tweede RCE fout zit bij een geheugenbug in librsvg, de open-source bibliotheek die SVG’s rendert. Next.js komt deze librsvg tegen via de sharp package, die SVG-afbeeldingen verwerkt.
Vercel geeft aan dat code execution mogelijk is wanneer Next.js draait op glibc-gebaseerde Linux. Daarnaast wordt de SVG-verwerking geactiveerd door specifieke instellingen. Standaard optimaliseert Next.js SVG’s niet, maar het serveren via de image optimizer kan wel zodra je de optie rond SVG’s inschakelt.
Ook de next/og-functionaliteit (social preview afbeeldingen) kan geraakt zijn, omdat die afbeeldingen in de Node.js-runtime genereert met dezelfde keten.
3) DoS in App Router met Server Actions
Naast RCE bevat de update ook een denial-of-service fout. In apps met de App Router die minstens één Server Action definiëren, kunnen speciaal gemaakte verzoeken één serverproces naar 100% CPU duwen. Daardoor kan de server andere verzoeken niet meer goed afhandelen.
Voor apps die de Pages Router gebruiken, of die geen Server Actions hebben, geldt dat deze DoS-kwetsbaarheid niet van toepassing is. Of je je precies geraakt voelt, hangt dus af van je router en server-action gebruik.
Wie heeft vooral risico: blootstelling en omgevingsverschillen
De impact verschilt per host en configuratie. Een platform als Netlify gaf bijvoorbeeld aan dat het doorgaans niet dezelfde image-optimizer codepad draait, waardoor de SVG-gerelateerde kwetsbaarheid daar beperkt zou zijn. Tegelijk is hun advies wél: upgrade, omdat je setup en runtime uiteindelijk bepalend zijn.
Let op: ook als je niet “zeker” weet dat je SVG’s optimaliseert, kun je door functies zoals next/og toch in dezelfde verwerking terechtkomen. Check daarom niet alleen je code, maar ook je dependency’s en runtime-instellingen.
Zo voer je de patch uit: upgradeplan
Vercel’s kernadvies is helder: upgrade naar Next.js 16.4.1 of 15.5.28, bouw opnieuw en deploy opnieuw.
Stap 1: upgrade Next.js
- Draai je Next.js 16? Upgrade naar 16.4.1.
- Draai je Next.js 15? Upgrade naar 15.5.28.
Stap 2: controleer sharp (en let op versiegedrag)
De advisory vermeldt dat upgrades Next.js de fixed sharp automatisch kunnen meenemen via je package manager. Voor Next.js 16 klopt dat in de praktijk wanneer 16.4.1 sharp 0.35.5 gebruikt.
Voor Next.js 15 is er een aandachtspunt: 15.5.28 kan een oudere, beïnvloede sharp 0.34.x laten staan als je daar al op zat en je upgrade “over” die installatie heen is gegaan. Daardoor kun je alsnog het probleem in je omgeving behouden.
Concreet: check met npm ls sharp welke versie je effectief draait. Als sharp ouder is dan 0.35.5, update die dan naar 0.35.5 of hoger.
Stap 3: handel snel bij uitstel (interim optie voor de SVG-bug)
Kun je niet direct upgraden? Er is een interim maatregel voor de image-/SVG-gerelateerde kwetsbaarheid. Zorg dat je sharp 0.35.5 of later gebruikt, of blokkeer de SVG-verwerking in sharp met:
sharp.block({ operation: ["VipsForeignLoadSvg"] })
Vercel geeft tegelijk aan dat de RCE’s rond use cache en Server Actions geen echte workaround hebben. Daar geldt: alleen een Next.js upgrade sluit de aanvalsvector.
Waarom je scanners mogelijk niet meteen waarschuwen
Op 15 oktober stonden de advisories voor de use cache- en Server Actions-gerelateerde problemen nog zonder CVE en verschenen ze nog niet in de npm advisory feed die npm audit gebruikt. Daardoor kunnen geautomatiseerde dependency-scanners je omgeving later of niet direct signaleren.
De SVG/librsvg issue is wél zichtbaar via de sharp-advisory keten. Neem je risico-assessment dus niet alleen op basis van “scanner kwam groen terug”. Combineer scanning met runtime-context: routerkeuze, server actions en of je via optimizer of next/og SVG’s verwerkt.
Context: het probleem rond afbeeldingverwerking keert vaker terug
Vercel benadrukte dat de image processing in Next.js eerder al vaker tot kwetsbaarheden leidde. Sinds augustus zijn er gevallen gemeld waarbij code execution mogelijk werd via de chain rond sharp en afbeeldingformaten, waaronder bugs via libheif (AVIF) en via next/og die door aanvallers beïnvloedde SVG-inhoud kon opleveren.
In deze ronde werd Next.js zelf niet “anders” in de optimizer-implementatie, maar lost 16.4.1 de kwetsbaarheid op door de ingebouwde sharp te verhogen. Daarbij komt een versie van librsvg met een gepatchte build mee.
Een extra punt uit de advisories: hoe betrouwbaar een aanvaller een bug in code execution kan omzetten, hangt ook samen met de hardening van je Node.js build. De officiële binaries zijn volgens de waarschuwing niet per definitie beschermd tegen dit type geheugenaanval.
Next.js vs. eerdere React2Shell: niet hetzelfde, maar wel ernstig
De React Server Components bug lijkt qua betrokken packages op de eerder bekendgemaakte React2Shell-kwetsbaarheid. Alleen is de scope hier veel nauwer. React beschrijft het opnieuw als extreem zeldzaam, maar de combinatie met een netwerkbereikbare Next.js-app maakt het alsnog een kritische update.
Op het moment van publicatie waren er bovendien nog geen publieke meldingen dat deze specifieke fouten al actief zijn misbruikt. Toch is dat geen reden om te wachten: bij RCE’s is de “exploitbaarheid” vaak eerder een kwestie van tijd dan van zekerheid.
Wat je nu kunt doen (checklist voor teams)
Om veilig uit te rollen, helpt deze korte aanpak:
- Plan direct een upgrade naar Next.js 16.4.1 of 15.5.28, inclusief rebuild en redeploy.
- Controleer sharp (versie 0.35.5 of hoger). Kijk specifiek of je op Next.js 15 zit en een oudere sharp mee sleept.
- Beoordeel je gebruik van SVG’s: draait je app image optimizer of next/og met SVG-output?
- Beoordeel Server Actions in combinatie met App Router. Heb je Server Actions, upgrade dan hoe dan ook.
- Herzie je afhankelijk van scanning: voeg contextchecks toe naast npm audit.
Heb je ook te maken met webserver-side componenten en kwetsbaarheden die via RCE of TLS-problemen binnenkomen? Dan kan een update-routine zoals in NGINX fix vijf kwetsbaarheden: RCE en TLS-risico je helpen om sneller en consistenter te patchen.
Conclusie
De Next.js out-of-band patch van Vercel verhelpt twee kritieke RCE-kwetsbaarheden en een ernstige DoS. De veiligste stap is een snelle upgrade naar Next.js 16.4.1 of 15.5.28, gevolgd door een controle van sharp 0.35.5+ om de SVG-keten volledig te fixen.
Wacht niet op scannerwaarschuwingen: zeker bij afhankelijkheden en runtime-gedrag kan het risico pas zichtbaar worden zodra je omgeving precies onder de voorwaarden valt. Pak deze patch daarom nu aan, en test je deployment daarna opnieuw.
Bron: https://thehackernews.com/2026/10/nextjs-ships-out-of-band-patch-for-two.html
