Next.js 16.4.5 : le patch novembre 2026 contre les fuites cache et RCE

Next.js a vécu 2026 comme un arc narratif chargé : des exécutions de code distantes critiques, des caches qui mélangent les données entre utilisateurs, et des mises à jour hors calendrier pour colmater les brèches. Le 3 novembre, Vercel a publié 16.4.5 et 15.5.29. Pour les geeks qui self-hostent leur app React, c’est le signal de passer à la version la plus récente. On décrypte sans jargon ce qui a changé, qui est vraiment exposé, et pourquoi ça concerne autant de projets pop culture, e-commerce ou sites de fans.
Novembre 2026 : sept failles patchées, surtout dans le cache
Le 3 novembre 2026, Next.js a livré 16.4.5 pour la ligne Active LTS et 15.5.29 pour la Maintenance LTS. Sept advisories au total, aucune classée critique cette fois. La plus sérieuse, notée High, concerne une divulgation de cache entre tenants. Quand une fonction publique marquée use cache lit un paramètre racine comme un identifiant de client ou de locale, et qu’elle est appelée à la fois directement et via unstable\_cache, le système peut stocker le résultat d’un tenant et le servir à un autre. Les six autres, de gravité Medium, tournent autour du même thème Cache Components : réutilisation de contenu généré pour un site ou une langue sur une autre requête, collision d’identité de cache avec des arguments binaires comme des tableaux typés, empoisonnement du cache shell sur les déploiements self-hosted avec next start, injection de réponses via des proxies HTTP/1.1 qui pipelinent les requêtes, exposition de valeurs de cookies y compris HttpOnly dans un header interne x-middleware-set-cookie sur les routes Edge, et un contournement de rejet SVG dans l’optimisation d’images même avec dangerouslyAllowSVG à false. La plupart de ces problèmes n’apparaissent que si Cache Components est activé ou si l’app tourne en self-hosted avec une config précise. Vercel souligne que la fuite de cookies n’est exploitable que si du JavaScript malveillant tourne déjà sur le même origine, ce qui renforce l’intérêt d’une Content Security Policy stricte. Ces correctifs s’ajoutent à ceux d’octobre sans les remplacer : 16.4.1 ne suffit plus.
Les RCE d’octobre et l’AVIF d’août : le vrai risque pour le self-hosted
Le 14 octobre 2026, une mise à jour hors calendrier a corrigé deux exécutions de code distantes non authentifiées classées critiques, plus un déni de service High. La première, GHSA-673q-mjm6-r5xr, frappe les apps App Router avec Cache Components dès qu’une fonction use cache retourne plusieurs tableaux typés. Aucun contournement connu, Vercel demande de mettre à jour même si on n’utilise pas ce pattern. La seconde, CVE-2026-96889, passe par l’API d’optimisation d’images quand elle traite du SVG sur Linux glibc, à cause d’un bug mémoire dans une librairie amont (sharp et librsvg). Le workaround temporaire consiste à forcer sharp en 0.35.5 ou plus. En août, une autre RCE critique via AVIF (GHSA-2xp9-vwfh-vxw4) venait de libheif dans sharp : un fichier AVIF malveillant pouvait corrompre la mémoire du serveur. Elle touchait les versions de 10.0.0 à 15.5.23 et 16.x avant 16.3.3, uniquement en self-hosted avec image/avif dans images.formats. Une autre faille Windows (CVE-2026-75604) permettait un path traversal dans le cache incrémental sur les serveurs Windows mélangeant Pages et App Router. Les déploiements Vercel sont souvent protégés par design, mais le self-hosted (Docker, VPS, autre PaaS) concentre l’exposition. Next.js équipe plusieurs millions de sites live selon les crawls, ce qui multiplie les cibles potentielles si les versions traînent. L’agence cyber de Singapour a même publié une alerte spécifique sur les RCE d’octobre. Si tu ne peux pas upgrader tout de suite, retire image/avif de ta config pour couper au moins le chemin AVIF, et vérifie ta version de sharp.
Quelle version Next.js lancer maintenant et comment vérifier
Aujourd’hui 13 novembre 2026, la version à viser est 16.4.5 sur la ligne 16.x ou 15.5.29 sur 15.x. Ces deux builds incluent tous les correctifs de 2026, des RCE d’août et octobre jusqu’aux fuites cache de novembre. Sur 16.x, 16.4.1 couvre seulement octobre, il faut aller plus loin. Les 15.0 à 15.4 doivent migrer vers 15.5.29. Tout ce qui est 14.x ou plus ancien n’a plus de patch : il faut sauter vers une ligne supportée. Pour checker en interne, npm ls next dans le projet. En externe, les outils de détection de stack lisent souvent la version depuis le HTML, mais ils ne voient pas ta config images.formats ni si tu es sur Vercel. Si tu es coincé, le minimum vital reste de désactiver l’optimisation AVIF et de confirmer sharp >= 0.35.5. Dans un univers aussi vivant que Next.js, rester à jour n’est pas optionnel : c’est le bouclier contre les one-shot, comme une bonne lore qui tient la route. Ajoute une CSP stricte en bonus, ça limite les dégâts si un script arrive à s’injecter.






