Patch de urgență pentru Next.js: două vulnerabilități RCE critice și un DoS în Server Actions
Pe 14 octombrie 2026, Vercel a publicat în afara ciclului obișnuit o actualizare de securitate pentru Next.js. Aceasta repară două vulnerabilități critice de execuție de cod la distanță (RCE) și o vulnerabilitate de tip denial-of-service cu severitate ridicată. Versiunile corectate sunt 16.4.1 (Active LTS) și 15.5.28 (Maintenance LTS). Ambele vulnerabilități de execuție de cod au scor CVSS 9.5 în evaluarea Vercel.
Ce s-a întâmplat
Actualizarea rezolvă trei probleme distincte:
| Problemă | Versiuni afectate | Corectat în | Expus când |
|---|---|---|---|
RCE prin use cache (GHSA-673q-mjm6-r5xr) | 16.0.0 – 16.4.0 | 16.4.1 | App Router cu Cache Components activ și o funcție use cache care returnează mai multe typed arrays |
| RCE prin procesarea SVG (CVE-2026-96889, GHSA-2464-fhr4-w9xw) | 10.0.0 – 15.5.27, 16.0.0 – 16.4.0 | 16.4.1 sau 15.5.28 cu sharp ≥ 0.35.5 | SVG-uri controlate de atacator ajung la sharp pe Linux cu glibc |
| DoS prin Server Actions (GHSA-p3m5-59mp-jv5r) | 13.0.0 – 15.5.27, 16.0.0 – 16.4.0 | 15.5.28, 16.4.1 | Aplicații App Router cu cel puțin o Server Action |
1. React Server Components / use cache. Problema se află în pachetele React pentru randare pe server (react-server-dom-webpack, -parcel și -turbopack, versiunile 19.0.0–19.3.0). React spune că afectează doar cazuri foarte rare: răspunsul trebuie să transporte mai multe typed arrays împreună cu o valoare controlată de atacator. În Next.js, asta înseamnă Cache Components activat și o funcție use cache care returnează mai mult de un typed array. Vercel recomandă totuși actualizarea chiar dacă nu aveți o astfel de funcție.
2. Coruperea memoriei în librsvg, prin sharp. Next.js ajunge la librsvg prin dependența sharp inclusă în pachet. Execuția de cod este posibilă pe Linux cu glibc. Optimizarea SVG este dezactivată implicit și trebuie activată explicit cu dangerouslyAllowSVG. Totuși, next/og (imaginile de previzualizare pentru social media, pe runtime-ul Node.js) folosește aceeași bibliotecă. Red Hat evaluează bug-ul din librsvg la 7.8 și spune că exploatarea necesită interacțiunea utilizatorului. Vercel evaluează expunerea din Next.js la 9.5, pentru că un server o poate atinge prin rețea.
3. DoS în Server Actions. Dacă o aplicație App Router definește cel puțin o Server Action, cereri special construite pot duce un proces de server la 100% CPU și îl pot bloca pentru restul traficului. Aplicațiile pe Pages Router și cele fără Server Actions nu sunt afectate.
Expunerea depinde și de platforma de găzduire. Netlify spune că platforma sa nu rulează componenta vulnerabilă de optimizare a imaginilor, dar recomandă totuși actualizarea.
De ce contează
- Procesarea imaginilor din Next.js tot produce vulnerabilități. Este a treia problemă de execuție de cod în procesarea imaginilor din Next.js din august încoace: întâi un bug în libheif/AVIF, apoi o injecție SVG în
next/og, iar acum aceasta. Cercetătorul care a raportat bug-ul din librsvg spune că este cauza de fond și pentru vulnerabilitateanext/ogdin septembrie. Pentru acea vulnerabilitate există deja un exploit public, deși este construit pentru o configurație anume. - Scannerele s-ar putea să nu o semnaleze. La 15 octombrie, avizele pentru
use cacheși Server Actions nu aveau CVE și nu apăreau în feed-ul de avize npm. Asta înseamnă cănpm auditși multe instrumente SCA nu le vor raporta. Doar vulnerabilitatea de imagine apare, prin avizul propriu alsharp. - Versiunea 15 poate rămâne vulnerabilă după actualizare. Next.js 15.5.28 acceptă încă versiunea vulnerabilă
sharp0.34.x, așa că o actualizare peste un lockfile existent poate lăsa vechea bibliotecă instalată. - Impactul depinde de build-ul Node.js. Mentenantul
sharpavertizează că binarele oficiale Node.js nu sunt protejate împotriva acestui tip de corupere a memoriei. Pe aceste build-uri, rezultatul poate fi execuție de cod, nu doar un crash.
Nu este React2Shell. Bug-ul din RSC se află în aceleași pachete ca vulnerabilitatea de severitate maximă din decembrie 2025, dar condițiile de declanșare sunt mult mai restrânse. La 15 octombrie nu existau rapoarte publice de exploatare pentru niciuna dintre cele trei probleme.
Ce trebuie făcut
- Actualizați. Treceți la Next.js 16.4.1 (v16) sau 15.5.28 (v15), apoi reconstruiți și redistribuiți aplicația.
- Pe v15, verificați personal
sharp. Rulaținpm ls sharpși asigurați-vă că versiunea instalată este 0.35.5 sau mai nouă. Dacă nu, actualizați-o explicit. Pe v16, 16.4.1 cere deja 0.35.5. - Măsură temporară pentru bug-ul SVG, dacă nu puteți actualiza încă Next.js: fixați
sharp≥ 0.35.5 sau blocați decodarea SVG cusharp.block({ operation: ["VipsForeignLoadSvg"] }). Pentruuse cacheși Server Actions nu există soluție de ocolire. Doar actualizarea le rezolvă. - Inventariați expunerea. Aflați unde folosiți
dangerouslyAllowSVG,next/ogpe runtime-ul Node.js, Cache Components și Server Actions, și tratați acele aplicații cu prioritate. - Verificați versiunile manual. Pentru că două dintre avize nu au încă CVE, nu vă bazați doar pe
npm audit. Comparați versiunile Next.js instalate cu cele corectate, în toate repository-urile și imaginile de container. - Urmăriți consumul de resurse. Până când toate aplicațiile sunt actualizate, configurați alerte pentru saturarea susținută a CPU în procesele de server Next.js. Poate fi un semn timpuriu că cineva abuzează de bug-ul din Server Actions.
Subiect relatat inițial de The Hacker News. Rezumatul și analiza aparțin echipei 4Tify.
