Direct naar de inhoud
Cybersecurity

Next.js out-of-band patch: RCE en DoS verholpen

Next.js out-of-band patch

Next.js heeft op 14 oktober een out-of-band beveiligingsupdate uitgebracht. De patch pakt twee kritieke remote code execution-lekken aan (ongeauthenticeerd) en daarnaast een denial-of-service-kwetsbaarheid met hoge ernst. Dit is precies het soort update dat je niet moet parkeren: zorg dat je omgeving zo snel mogelijk updatet.

De fixes zitten in Next.js 16.4.1 (voor versie 16) en Next.js 15.5.28 (voor versie 15). In het bijzonder spelen twee componenten mee: React Server Components en de SVG-afhandeling via de open-source bibliotheek librsvg die Next.js benadert via de sharp-pakketketen.

Wat is er precies gepatcht?

Volgens Vercel (de ontwikkelaar van Next.js) gaat het om drie afzonderlijke issues. Twee daarvan zijn code-executie met een hoge tot maximale impact, en de derde is een DoS-probleem.

1) React Server Components: kritieke RCE

Het eerste code-executielek zit in de React-laag rond React Server Components. Het advies beschrijft dat het om extreem zeldzame gevallen gaat waarin responses meerdere typed arrays transporteren met een door een aanvaller gecontroleerde waarde.

In een Next.js-app is de kans op blootstelling gekoppeld aan het gebruik van de use cache-functie (met name als je de feature achter use cache, oftewel Cache Components, aan hebt staan). Daarnaast raadt Vercel aan om toch te upgraden, ook als je denkt dat je dergelijke code niet gebruikt.

2) SVG-rendering via librsvg/sharp: kritieke RCE

Het tweede kritieke RCE-lek betreft een geheugenbug in librsvg, de bibliotheek die SVG’s rendert. Next.js raakt deze route via de gebundelde sharp-packageketen.

Deze kwetsbaarheid wordt relevant wanneer Next.js draait op systemen met glibc-based Linux. Niet elke toepassing activeert automatisch dezelfde functionaliteit: standaard optimaliseert Next.js SVG’s niet. Dat wijzigt pas als je SVG-verwerking expliciet inschakelt.

In de broncontext wordt ook benoemd dat de SVG-rendering een rol speelt wanneer Next.js de afbeelding opbouwt voor social preview’s via de next/og-feature in de Node.js runtime.

3) App Router Server Actions: DoS door CPU-belasting

Tot slot is er een denial-of-service-kwetsbaarheid. In App Router-applicaties die minstens één Server Action definiëren, kunnen speciaal vervaardigde verzoeken ervoor zorgen dat één serverproces naar 100% CPU gaat. Hierdoor kan het proces niet meer effectief andere verzoeken afhandelen.

Op de Pages Router of in apps zonder Server Actions geldt deze issue niet, aldus de beschrijving. Wel kan de mate van blootstelling variëren per hostpartij en setup.

Wie loopt risico en hoe groot is de blootstelling?

Met name de twee code-executieproblemen zijn volgens het advies ongeauthenticeerd en met een hoge score door Vercel aangemerkt als kritisch. Toch is de praktische kans op exploit afhankelijk van jouw gedrag en configuratie.

  • React Server Components: raakt vooral apps die de context hebben rond use cache / Cache Components en waarbij responses de relevante typed array-situatie bevatten. Het blijft “extreem zeldzaam”, maar de impact is wel groot.
  • SVG via sharp: wordt vooral relevant wanneer je SVG-rendering activeert (bijvoorbeeld via een instelling die SVG’s toelaat) of wanneer next/og SVG-afhandeling gebruikt.
  • DoS: duidelijker afgebakend op basis van App Router + aanwezigheid van Server Actions.

Er zijn ook signalen dat niet elke hostingomgeving dezelfde paden uitvoert. In de broncontext gaf Netlify aan dat het platform de image-optimizer route doorgaans niet in dezelfde vorm draait, waardoor de impact daar beperkt kan zijn. Dat neemt niet weg dat upgraden blijft gelden.

Wat moet je nu doen? (upgrade-stappen)

De kernoplossing is eenvoudig: upgrade naar de vaste versies en zet je deployment door.

  • Gebruik je Next.js 16? Upgrade naar 16.4.1.
  • Gebruik je Next.js 15? Upgrade naar 15.5.28.

Daarna moet je rebuilden en re-deployen. Een versie-update alleen in package.json is niet genoeg als je build-cache of lockbestanden niet meeschuiven.

Controleer ook de sharp-versie

De patch werkt onder andere doordat Next.js bij de update ook naar een versie van sharp gaat waar de juiste fix in zit. Voor versie 16 geldt volgens de beschrijving dat 16.4.1 sharp 0.35.5 of nieuwer afdwingt.

Voor versie 15 kan dat minder strikt zijn: 15.5.28 kan in bepaalde situaties een oudere, nog kwetsbare sharp-versie accepteren als je bestaande installatie die versie al bevat. Daarom is het verstandig om je installatie te checken met een commando zoals npm ls sharp en vervolgens sharp bij te werken naar 0.35.5 of later wanneer je een oudere variant ziet.

Welke noodmaatregelen zijn er als je niet direct kunt upgraden?

Kun je niet meteen overal naar de fixed Next.js-versies? Dan is er in de broncontext een interim aanpak genoemd voor het SVG/sharp gerelateerde probleem.

Voor die specifieke image-keten kun je tijdelijk:

  • zorgen dat sharp 0.35.5 of later beschikbaar is, of
  • SVG-rendering in sharp tijdelijk blokkeren met de beschreven methode uit het sharp-advies, via een blokkade op de relevante SVG-operatie.

Let op: voor de React Server Components-issue en de Server Actions-DoS issue is er geen workaround genoemd. In die gevallen is upgraden de enige echte route.

Waarom komt dit soort beeld-/image-kwetsbaarheden steeds terug?

Dit is niet de eerste keer dat image processing in Next.js voor kwetsbaarheden zorgt. In de broncontext wordt zelfs een korte geschiedenis aangehaald:

  • Eerder leverde een bug in libheif, via sharp, code-executie op bij het verwerken van een speciaal geconstrueerde AVIF.
  • Ook in een andere maand werd een issue zichtbaar in next/og, waar door een aanvaller beïnvloedde tekst de SVG-output kon wijzigen.

Voor deze nieuwe ronde benadrukt de beschrijving dat Next.js zelf de optimizer-code niet per se opnieuw heeft aangepast, maar dat de fix vooral komt doordat Next.js in 16.4.1 de ingebouwde sharp-variant verhoogt naar een build met een gepatchte librsvg-versie.

Daarnaast wordt genoemd dat of een geheugenfout eindigt in echte code-executie mede kan afhangen van hoe Node.js in jouw omgeving is gebouwd (de officiële binaries zouden niet gehard zijn tegen dit type geheugenaanval).

Praktische checklist voor teams

Om snel en gestructureerd te handelen, kun je deze volgorde aanhouden:

  • Inventariseer je Next.js versie (15 vs 16) en check meteen of je App Router gebruikt.
  • Ga na of je Server Actions hebt (voor DoS-risico).
  • Controleer je image/SVG-configuratie: staat SVG-optimalisatie of SVG-toegang aan?
  • Upgraden naar 16.4.1 of 15.5.28, gevolgd door rebuild en redeploy.
  • Check scherp (sharp 0.35.5+), vooral wanneer je al langer draait op versie 15.

Als je in het bredere kader ook werkt aan het voorkomen van incidenten rond server-side componenten en exploitketens, kan het nuttig zijn om parallel te kijken naar eerdere RCE-fixes in webservers en componenten. Bijvoorbeeld: NGINX fix vijf kwetsbaarheden: RCE en TLS-risico.

Conclusie: patch snel, ook als exploit “zeldzaam” klinkt

De Next.js out-of-band patch is geen routine-update. Twee fouten kunnen leiden tot ongeauthenticeerde remote code execution, en er is daarnaast een hoge DoS-kwetsbaarheid in specifieke App Router-omstandigheden. Zelfs als de React Server Components trigger “extreem zeldzaam” wordt genoemd, is de impact groot genoeg om prioriteit te geven aan upgraden.

Upgrade daarom naar Next.js 16.4.1 of 15.5.28, rebuild en redeploy, en controleer waar nodig ook sharp. Daarmee verklein je direct de kans op incidenten via zowel React Server Components als SVG/image-verwerking.

Bron: https://thehackernews.com/2026/10/nextjs-ships-out-of-band-patch-for-two.html