Op 14 oktober heeft Next.js de aangekondigde security-update uitgebracht. Het gaat om drie kwetsbaarheden: twee critical, waarbij een aanvaller zonder in te loggen code op je server kan uitvoeren, en één high, waarmee je site plat te leggen is.

De fixes zitten in Next.js 16.4.1 en 15.5.28. Dat staat in de officiële security-post van Next.js. Een week eerder kondigden ze de update al aan, en twee van de fixes waren eigenlijk al klaar voor de september-release.

Draait je site of webshop op Next.js, dan is dit geen nieuws om even te lezen. Het is een taak voor deze week.

Wat er precies gerepareerd is

Next.js noemt drie problemen.

Het eerste lek (GHSA-673q-mjm6-r5xr) zit in apps met de App Router en Cache Components. Als een use cache-functie meerdere typed arrays teruggeeft, kan een aanvaller van buitenaf code uitvoeren. Er is geen workaround. Next.js adviseert om meteen te upgraden, ook als je denkt dat je zo'n functie niet hebt.

Het tweede lek (CVE-2026-96889) zit in de beeldoptimalisatie. Een upstream library die sharp gebruikt om SVG's te verwerken, heeft een geheugenfout. Draait Next.js op een Linux-server met glibc, dan kan dat leiden tot remote code execution. De tijdelijke oplossing is zorgen dat Next.js sharp 0.35.5 of nieuwer gebruikt.

Het derde probleem (GHSA-p3m5-59mp-jv5r) is een denial of service. Met speciaal gemaakte verzoeken kan iemand de CPU vol laten lopen bij apps met de App Router en minstens één Server Action. Gebruik je de Pages Router of geen Server Actions, dan raakt dit je niet.

Wat dit betekent voor een gewone bedrijfssite

Veel kleinere sites op Next.js zijn ooit door een bureau of freelancer gebouwd en daarna niet meer aangeraakt. Ze werken, dus niemand kijkt ernaar. Dat is precies het type site waar een patch als deze blijft liggen.

Het risico is niet theoretisch klein. Remote code execution zonder inlog betekent dat iemand in het slechtste geval op je server kan doen wat jouw code ook kan: data lezen, je site aanpassen, je server gebruiken voor iets anders. Op 16 oktober zie ik in de officiële post geen melding van actief misbruik. Daar zou ik niet op wachten.

Hosting maakt het verschil maar half. Netlify schrijft in hun eigen toelichting dat een deel van de impact bij hen kleiner is, omdat afbeeldingen via hun eigen CDN lopen. Toch adviseren ze ook gewoon te upgraden en opnieuw te deployen. Ik ga er bij geen enkele host vanuit dat die het voor je oplost.

Een security-patch is pas klaar als de nieuwe versie live staat, niet als hij in package.json staat.

Hoe ik het aanpak

Mijn eigen stack draait op Next.js en Vercel, dus ik loop deze stappen zelf ook af.

  1. Check per project welke Next.js-versie er staat (package.json of de deployment-details bij je host).
  2. Upgrade naar 16.4.1 als je op 16.x zit, of naar 15.5.28 als je op 15.5 zit.
  3. Draai npm ls sharp en kijk of je op 0.35.5 of hoger zit. Volgens onder andere The Layman Security kan bij 15.5.28 een oude sharp blijven hangen, dus controleer het in plaats van het aan te nemen.
  4. Deploy eerst naar een preview of staging, test de belangrijkste pagina's en formulieren, en zet het daarna live.
  5. Rebuild ook containers of andere omgevingen waar dezelfde code draait.

Zit je nog op een oudere versie dan 15.5, dan wordt het een groter klusje. De officiële post noemt alleen 16.4.1 en 15.5.28 als gepatchte versies. Voor oudere lijnen moet je dus eerst naar een ondersteunde versie toe.

Waar ik nog voorzichtig mee ben

De cijfers over ernst verschillen per bron. Next.js geeft het SVG-lek een 9.5, andere partijen schatten het lager in. Voor een kleine site maakt dat weinig uit: upgraden is de oplossing, hoe je het ook scoort.

Wat ik ook niet weet, is hoeveel Nederlandse MKB-sites geraakt worden. Daar heb ik geen cijfers van, en ik ga ze ook niet verzinnen. Wat ik wel weet: elke Next.js-site zonder vast onderhoud loopt achter tot iemand dit oppakt.

Waar begin je

  1. Maak een lijst van al je Next.js-projecten en hun versie.
  2. Upgrade naar 16.4.1 of 15.5.28 en check sharp.
  3. Test op een preview en zet het live.
  4. Volg de security-berichten van Next.js zelf, zodat je niet afhankelijk bent van een toevallige post op social media.

Heb je een Next.js-site waar niemand vast onderhoud op doet, of weet je niet welke versie er draait? Stuur me een bericht, dan kijken we samen of hij al gepatcht is.