{"id":174412,"date":"2026-09-15T11:29:03","date_gmt":"2026-09-15T09:29:03","guid":{"rendered":"https:\/\/jfrog.com\/blog\/cve-2025-29927-vulnerabilite-de-contournement-dautorisation-dans-next-js-tout-ce-que-vous-devez-savoir\/"},"modified":"2026-09-23T08:38:10","modified_gmt":"2026-09-23T06:38:10","slug":"cve-2025-29927-next-js-authorization-bypass","status":"publish","type":"post","link":"https:\/\/jfrog.com\/fr\/blog\/cve-2025-29927-next-js-authorization-bypass\/","title":{"rendered":"CVE-2025-29927 &#8211; Vuln\u00e9rabilit\u00e9 de contournement d\u2019autorisation dans Next.js\u00a0: Tout ce que vous devez savoir"},"content":{"rendered":"<p>CVE-2025-29927 &#8211; <\/p>\n<p>Le 21 mars 2025, les mainteneurs de Next.js ont annonc\u00e9 une nouvelle vuln\u00e9rabilit\u00e9 permettant de contourner les m\u00e9canismes d\u2019autorisation\u00a0: CVE-2025-29927. Cette vuln\u00e9rabilit\u00e9 peut \u00eatre facilement exploit\u00e9e afin de contourner les m\u00e9canismes d\u2019autorisation. Dans certains cas, son exploitation peut \u00e9galement entra\u00eener un empoisonnement du cache et un d\u00e9ni de service.<br \/>\nQuelles versions de Next.js sont concern\u00e9es\u00a0?<br \/>\nNext.js 15.x \u2013 \u00e0 partir de la version 15.0.0 jusqu&rsquo;\u00e0 la version 15.2.2 incluse.<\/p>\n<p>Next.js 14.x \u2013 \u00e0 partir de la version 14.0.0 jusqu&rsquo;\u00e0 la version 14.2.24 incluse.<\/p>\n<p>Versions ant\u00e9rieures de Next.js \u2013 \u00e0 partir de la version 11.1.4 jusqu&rsquo;\u00e0 la version 13.5.6 incluse.<br \/>\nSc\u00e9narios d\u2019attaque pour la CVE-2025-29927<br \/>\nPour que cette vuln\u00e9rabilit\u00e9 puisse \u00eatre exploit\u00e9e, le serveur Next.js cibl\u00e9 doit utiliser un middleware Next.js. Cela implique la pr\u00e9sence d\u2019un fichier middleware.js ou middleware.ts (_middleware.js ou _middleware.ts\u00a0 pour les anciennes versions de Next.js). Ce fichier d\u00e9finit et exporte la fonction de middleware contenant la logique ex\u00e9cut\u00e9e \u00e0 la r\u00e9ception de chaque requ\u00eate HTTP.<br \/>\nContournement des m\u00e9canismes d\u2019autorisation<br \/>\nIl s\u2019agit du sc\u00e9nario d\u2019exploitation le plus probable pour CVE-2025-29927.<\/p>\n<p>Ce sc\u00e9nario concerne les serveurs Next.js cibl\u00e9s qui utilisent la fonctionnalit\u00e9 de middleware pour effectuer les contr\u00f4les d\u2019autorisation (et dont l\u2019application sous-jacente n\u2019utilise aucune autre couche d\u2019autorisation).<\/p>\n<p>Sc\u00e9nario avec un middleware d\u2019autorisation sans exploitation de la CVE-2025-29927<\/p>\n<p>Sc\u00e9nario avec un middleware d\u2019autorisation et exploitation de la CVE-2025-29927<\/p>\n<p>D\u00e9ni de service par empoisonnement du cache<br \/>\nLe middleware Next.js peut \u00e9galement faciliter la localisation des sites web. Il peut, par exemple, rediriger automatiquement les utilisateurs en fonction de leur emplacement, en ajoutant \/en pour les anglophones ou \/fr pour les visiteurs francophones. Si une personne exploite la CVE-2025-29927 et contourne le middleware charg\u00e9 de ces redirections, elle n\u2019acc\u00e9dera pas \u00e0 une page localis\u00e9e, mais \u00e0 la racine du site web (\/), pour laquelle les d\u00e9veloppeurs n\u2019ont jamais cr\u00e9\u00e9 de page. Le r\u00e9sultat\u00a0? Une erreur 404 ou une erreur serveur 500, selon la configuration.<\/p>\n<p>Si le site utilise un CDN ou une autre couche de mise en cache, ces r\u00e9ponses d\u2019erreur peuvent \u00eatre enregistr\u00e9es dans le cache et pr\u00e9sent\u00e9es aux visiteurs suivants. Une fois ces r\u00e9ponses mises en cache, les utilisateurs l\u00e9gitimes risquent de voir des pages d\u00e9fectueuses partout dans le monde. Cela provoque une panne auto-inflig\u00e9e qui compromet gravement la disponibilit\u00e9 du service, sans qu\u2019une seule ligne de code ait \u00e9t\u00e9 modifi\u00e9e.<\/p>\n<p>Sc\u00e9nario avec un middleware de redirection sans exploitation de la CVE-2025-29927<br \/>\n\u00a0<\/p>\n<p>Sc\u00e9nario avec un middleware de redirection et exploitation de la CVE-2025-29927<br \/>\n\u00a0<br \/>\nComprendre le middleware Next.js<br \/>\nLe middleware Next.js est une fonctionnalit\u00e9 puissante, introduite dans Next.js v12, qui permet aux d\u00e9veloppeurs d\u2019ex\u00e9cuter du code avant qu\u2019une requ\u00eate ne soit finalis\u00e9e. Ex\u00e9cut\u00e9 \u00e0 la p\u00e9riph\u00e9rie du r\u00e9seau, plus pr\u00e8s de l\u2019utilisateur que le code traditionnel c\u00f4t\u00e9 serveur, le middleware peut modifier les en-t\u00eates de r\u00e9ponse, r\u00e9\u00e9crire ou rediriger les requ\u00eates et, surtout, mettre en \u0153uvre des contr\u00f4les d\u2019authentification et d\u2019autorisation.<\/p>\n<p>Dans Next.js, le middleware s\u2019ex\u00e9cute avant le rendu et peut \u00eatre configur\u00e9 de mani\u00e8re \u00e0 s\u2019activer sur des chemins sp\u00e9cifiques gr\u00e2ce aux param\u00e8tres matcher.<\/p>\n<p>Voici quelques exemples d\u2019utilisation du middleware Next.js\u00a0:<\/p>\n<p> \tV\u00e9rification des jetons d\u2019authentification<br \/>\n \tMise en place d\u2019un contr\u00f4le d\u2019acc\u00e8s bas\u00e9 sur les r\u00f4les<br \/>\n \tRedirection des utilisateurs non authentifi\u00e9s<\/p>\n<p>Une impl\u00e9mentation typique de middleware Next.js qui effectue l\u2019authentification pourrait ressembler \u00e0 ceci\u00a0:<\/p>\n<p> import { NextResponse } from &lsquo;next\/server&rsquo;<br \/>\n import type { NextRequest } from &lsquo;next\/server&rsquo;<\/p>\n<p> export function middleware(request: NextRequest) {<br \/>\n   \/\/ R\u00e9cup\u00e9rer le jeton de l\u2019utilisateur dans les cookies<br \/>\n   const token = request.cookies.get(&lsquo;token&rsquo;).value<\/p>\n<p>   \/\/ V\u00e9rifier que l\u2019utilisateur est authentifi\u00e9<br \/>\n   const isAuthenticated = validateToken(token)<\/p>\n<p>   \/\/ Si l\u2019utilisateur n\u2019est pas authentifi\u00e9, le rediriger vers la page de connexion<br \/>\n   if (!isAuthenticated) {<br \/>\n     return NextResponse.redirect(new URL(&lsquo;\/login&rsquo;, request.url))<br \/>\n   }<\/p>\n<p>   \/\/ Poursuivre vers la route prot\u00e9g\u00e9e si l\u2019utilisateur est authentifi\u00e9<br \/>\n   return NextResponse.next()<br \/>\n }<\/p>\n<p> \/\/ Configurer les routes qui utilisent ce middleware<br \/>\n export const config = {<br \/>\n   matcher: [&lsquo;\/dashboard\/:path*&rsquo;, &lsquo;\/settings\/:path*&rsquo;],<br \/>\n }<br \/>\n\u00a0<\/p>\n<p>Analyse technique de la CVE-2025-29927<br \/>\nLa CVE-2025-29927 r\u00e9v\u00e8le une faille critique dans la fa\u00e7on dont le middleware Next.js traite certains types de requ\u00eates. Cette faille peut permettre de contourner les m\u00e9canismes d\u2019authentification et d\u2019autorisation.<\/p>\n<p>Cette vuln\u00e9rabilit\u00e9 affecte les applications qui, dans certaines configurations, utilisent un middleware pour contr\u00f4ler les acc\u00e8s.<\/p>\n<p>Elle provient du traitement incoh\u00e9rent, par Next.js, des en-t\u00eates personnalis\u00e9s x-middleware-subrequest. Lorsque cet en-t\u00eate est inclus dans les requ\u00eates adress\u00e9es \u00e0 des routes prot\u00e9g\u00e9es, Next.js autorise \u00e0 tort la requ\u00eate \u00e0 contourner enti\u00e8rement l\u2019ex\u00e9cution du middleware. Cet en-t\u00eate force l\u2019environnement d\u2019ex\u00e9cution de Next.js \u00e0 ignorer la phase d\u2019\u00e9valuation du middleware, tout en continuant \u00e0 traiter le gestionnaire de la route sous-jacente.<\/p>\n<p>Pour exploiter cette vuln\u00e9rabilit\u00e9, il suffit \u00e0 un pirate d\u2019ajouter l\u2019en-t\u00eate x-middleware-subrequest \u00e0 ses requ\u00eates HTTP lorsqu\u2019il tente d\u2019acc\u00e9der \u00e0 des ressources prot\u00e9g\u00e9es. Par exemple, une requ\u00eate adress\u00e9e \u00e0 \/api\/admin\/users, normalement bloqu\u00e9e par les contr\u00f4les d\u2019autorisation du middleware, sera trait\u00e9e normalement si cet en-t\u00eate est pr\u00e9sent. Le serveur traite la requ\u00eate comme si le middleware l\u2019avait d\u00e9j\u00e0 examin\u00e9e et approuv\u00e9e, ce qui entra\u00eene un contournement complet des m\u00e9canismes de s\u00e9curit\u00e9. Cette manipulation de l\u2019en-t\u00eate peut \u00eatre facilement r\u00e9alis\u00e9e \u00e0 l\u2019aide des outils de d\u00e9veloppement d\u2019un navigateur, de commandes curl ou de scripts simples.<\/p>\n<p>Voici le code vuln\u00e9rable de la derni\u00e8re version affect\u00e9e (v15.2.2)\u00a0:<\/p>\n<p> export const run = withTaggedErrors(async function runWithTaggedErrors(params) {<br \/>\n const runtime = await getRuntimeContext(params)<br \/>\n const subreq = params.request.headers[`x-middleware-subrequest`]        [1]<br \/>\n const subrequests = typeof subreq === &lsquo;string&rsquo; ? subreq.split(&lsquo;:&rsquo;) : [] [2]<\/p>\n<p> const MAX_RECURSION_DEPTH = 5<br \/>\n const depth = subrequests.reduce(                                       [3]<br \/>\n  (acc, curr) =&gt; (curr === params.name ? acc + 1 : acc),<br \/>\n  0<br \/>\n )<\/p>\n<p> if (depth &gt;= MAX_RECURSION_DEPTH) {                                     [4]<br \/>\n  return {<br \/>\n     waitUntil: Promise.resolve(),<br \/>\n     response: new runtime.context.Response(null, {<br \/>\n       headers: {<br \/>\n         &lsquo;x-middleware-next&rsquo;: &lsquo;1&rsquo;,<br \/>\n       },<br \/>\n     }),<br \/>\n   }<br \/>\n }<br \/>\n\u00a0<\/p>\n<p>\u00c0 l\u2019\u00e9tape [1], l\u2019en-t\u00eate x-middleware-subrequest est r\u00e9cup\u00e9r\u00e9 dans la requ\u00eate.<br \/>\n\u00c0 l\u2019\u00e9tape [2], sa valeur est divis\u00e9e \u00e0 l\u2019aide du d\u00e9limiteur :. Une fonction reduce compte ensuite, \u00e0 l\u2019\u00e9tape [3], le nombre d\u2019\u00e9l\u00e9ments de ce tableau (subrequests) qui correspondent au nom de fichier du middleware.<br \/>\nSi ce nombre est sup\u00e9rieur ou \u00e9gal \u00e0 MAX_RECURSION_DEPTH (dont la valeur est 5) \u00e0 l\u2019\u00e9tape [4], la fonctionnalit\u00e9 du middleware est contourn\u00e9e et la requ\u00eate est dirig\u00e9e vers sa route.<br \/>\nValeurs possibles de l\u2019en-t\u00eate d\u2019attaque<\/p>\n<p>Comme expliqu\u00e9 pr\u00e9c\u00e9demment, le nom de l\u2019en-t\u00eate vuln\u00e9rable est x-middleware-subrequest. La valeur qui lui est attribu\u00e9e d\u00e9pend de Next.js, car elle est d\u00e9finie en fonction de la valeur de middlewareInfo.name, qui correspond essentiellement au chemin du fichier middleware.js ou middleware.ts.<\/p>\n<p>Avant la version\u00a012.2, le fichier du middleware s\u2019appelait _middleware.js ou _middleware.ts et pouvait se trouver \u00e0 n\u2019importe quel niveau du sous-r\u00e9pertoire auquel nous tentions d\u2019acc\u00e9der. Dans notre cas, nous cherchons \u00e0 acc\u00e9der \u00e0 \/admin\/dashboard. La valeur de middlewareInfo.name pouvait donc \u00eatre pages\/_middleware ou pages\/admin\/_middleware. Si dashboard avait \u00e9t\u00e9 configur\u00e9 comme un r\u00e9pertoire contenant un fichier index.js,\u00a0cette valeur aurait \u00e9galement pu \u00eatre pages\/admin\/dashboard\/_middleware.<\/p>\n<p>Par exemple, si nous avions utilis\u00e9 notre code de d\u00e9monstration avec une version de Next.js ant\u00e9rieure \u00e0 la version\u00a012.2, nous aurions d\u00fb d\u00e9placer middleware.js dans le r\u00e9pertoire pages et le renommer _middleware.js. Notre requ\u00eate HTTP \u00ab\u00a0malveillante\u00a0\u00bb aurait alors \u00e9t\u00e9 la suivante\u00a0:<\/p>\n<p> GET \/admin\/dashboard HTTP\/1.1<br \/>\n x-middleware-subrequest: pages\/_middleware<br \/>\n\u00a0<\/p>\n<p>\u00c0 partir de la version 12.2 et jusqu\u2019\u00e0 la version\u00a013, le fichier du middleware doit se trouver \u00e0 la racine du projet et porter le nom middleware.js\/middleware.ts. Pour attaquer ces versions de Next.js, la charge utile de l\u2019en-t\u00eate serait donc simplement middleware, et nous savons avec certitude que le fichier se trouve dans le r\u00e9pertoire racine.<\/p>\n<p>Si nous avions utilis\u00e9 une version de Next.js comprise entre les versions\u00a012.2 et 13, notre requ\u00eate \u00ab\u00a0malveillante\u00a0\u00bb aurait \u00e9t\u00e9 modifi\u00e9e comme suit\u00a0:<\/p>\n<p> GET \/admin\/dashboard HTTP\/1.1<br \/>\n x-middleware-subrequest: middleware<br \/>\n\u00a0<\/p>\n<p>\u00c0 partir de la version 13 de Next.js, le contr\u00f4le de r\u00e9cursivit\u00e9 pr\u00e9sent\u00e9 pr\u00e9c\u00e9demment a \u00e9t\u00e9 mis en \u0153uvre. Un pirate doit donc attribuer \u00e0 l\u2019en-t\u00eate malveillant la valeur middleware:middleware:middleware:middleware:middleware afin de simuler cinq niveaux de r\u00e9cursivit\u00e9.<\/p>\n<p>Notre PoC utilisant cette version, voici un extrait de la requ\u00eate employ\u00e9e\u00a0:<\/p>\n<p> GET \/admin\/dashboard HTTP\/1.1<br \/>\n x-middleware-subrequest: middleware:middleware:middleware:middleware:middleware<br \/>\n\u00a0<\/p>\n<p>Gardez \u00e0 l\u2019esprit que, dans tous les cas, le code du middleware pouvait se trouver dans un r\u00e9pertoire src. Pour exploiter la vuln\u00e9rabilit\u00e9, il aurait alors \u00e9t\u00e9 n\u00e9cessaire d\u2019ajouter src au d\u00e9but des valeurs pr\u00e9sent\u00e9es pr\u00e9c\u00e9demment. Par exemple, si nous avions plac\u00e9 le code de notre PoC dans un r\u00e9pertoire src, notre charge utile aurait d\u00fb \u00eatre la suivante\u00a0:<\/p>\n<p> GET \/admin\/dashboard HTTP\/1.1<br \/>\n x-middleware-subrequest: src\/middleware:src\/middleware:src\/middleware:src\/middleware:src\/middleware.<br \/>\n\u00a0<\/p>\n<p>Exploitation de la CVE-2025-29927<br \/>\nComme toujours, il est pr\u00e9f\u00e9rable d\u2019observer une exploitation compl\u00e8te de la vuln\u00e9rabilit\u00e9 afin de comprendre quelles instances de Next.js seraient vuln\u00e9rables.<\/p>\n<p>Nous avons mis en place notre propre site web de PoC avec l\u2019arborescence suivante\u00a0:<\/p>\n<p>\u251c\u2500\u2500 middleware.js<br \/>\n\u251c\u2500\u2500 package-lock.json<br \/>\n\u251c\u2500\u2500 package.json<br \/>\n\u2514\u2500\u2500 pages<br \/>\n\u251c\u2500\u2500 admin<br \/>\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 dashboard.js<br \/>\n\u2514\u2500\u2500 index.js<\/p>\n<p>Tout d\u2019abord, notre page de connexion\u00a0:<\/p>\n<p>Voici ce qui se passe lorsqu\u2019un utilisateur non administrateur tente de se connecter\u00a0:<\/p>\n<p>Voici le tableau de bord d\u2019administration accessible \u00e0 l\u2019adresse \/admin\/dashboard avec les identifiants appropri\u00e9s\u00a0:<\/p>\n<p>Passons \u00e0 l&rsquo;exploitation\u00a0: essayons d&rsquo;abord d&rsquo;envoyer une requ\u00eate GET \u00e0 \/admin\/dashboard sans l&rsquo;en-t\u00eate malveillant\u00a0:<\/p>\n<p>Nous recevons une r\u00e9ponse 401 Unauthorized, car notre middleware s\u2019active et constate qu\u2019il ne s\u2019agit pas d\u2019un compte administrateur\u00a0:<\/p>\n<p>Essayons maintenant de r\u00e9p\u00e9ter la m\u00eame op\u00e9ration en ajoutant l\u2019en-t\u00eate x-middleware-subrequest\u00a0:<\/p>\n<p>Nous recevons une r\u00e9ponse 200 OK\u00a0!<\/p>\n<p>Gr\u00e2ce \u00e0 l\u2019aper\u00e7u web, nous pouvons \u00e9galement constater que nous avons bien re\u00e7u le document pr\u00e9sent\u00e9 pr\u00e9c\u00e9demment\u00a0:<\/p>\n<p>Correction de la CVE-2025-29927<br \/>\nMise \u00e0 niveau de la version<br \/>\nLa meilleure fa\u00e7on de corriger la CVE-2025-29927 consiste \u00e0 mettre \u00e0 niveau votre version de Next.js vers l\u2019une des versions corrig\u00e9es\u00a0:<\/p>\n<p> \t15.2.3<br \/>\n \t14.2.25<\/p>\n<p>Veillez \u00e0 identifier toutes les versions potentiellement vuln\u00e9rables, de la version\u00a011.1.4 \u00e0 la version\u00a013.5.6 incluse, ainsi que les versions\u00a014.2.24 et 15.2.2, puis \u00e0 les remplacer par cette nouvelle version corrig\u00e9e.<br \/>\nBlocage de l\u2019en-t\u00eate vuln\u00e9rable sur le serveur web<br \/>\nS\u2019il n\u2019est pas possible d\u2019effectuer la mise \u00e0 niveau, vous pouvez att\u00e9nuer la vuln\u00e9rabilit\u00e9 en configurant votre serveur web de mani\u00e8re \u00e0 supprimer l\u2019en-t\u00eate x-middleware-subrequest des requ\u00eates entrantes.<\/p>\n<p>Dans Apache, ajoutez la directive suivante au fichier .htaccess (mod_headers doit \u00eatre install\u00e9 et activ\u00e9)\u00a0:<br \/>\n &lt;IfModule mod_headers.c&gt;<br \/>\n   RequestHeader unset x-middleware-subrequest<br \/>\n &lt;\/IfModule&gt;<br \/>\nDans NGINX, modifiez le fichier nginx.conf et ajoutez la directive proxy_set_header suivante au bloc server\u00a0:<\/p>\n<p>\u00a0proxy_set_header x-middleware-subrequest &quot;&quot;;<\/p>\n<p>Par exemple\u00a0:<br \/>\n server {<br \/>\n\u00a0  listen 80;<br \/>\n\u00a0  server_name your_domain.com;<br \/>\n\u00a0  location \/ {<br \/>\n\u00a0 \u00a0  proxy_set_header x-middleware-subrequest &quot;&quot;;<br \/>\n\u00a0  }<br \/>\n }<br \/>\nDans Express.js, ajoutez la directive suivante \u00e0 votre code source JavaScript\u00a0:<br \/>\n \/\/ Middleware permettant de supprimer l\u2019en-t\u00eate x-middleware-subrequest<br \/>\n app.use((req, res, next) =&gt; {<br \/>\n   delete req.headers[&lsquo;x-middleware-subrequest&rsquo;];<br \/>\n   next();<br \/>\n });<br \/>\nBlocage de l\u2019en-t\u00eate vuln\u00e9rable \u00e0 l\u2019aide d\u2019un WAF<br \/>\nS\u2019il n\u2019est pas possible d\u2019effectuer la mise \u00e0 niveau, vous pouvez att\u00e9nuer la vuln\u00e9rabilit\u00e9 en utilisant un pare-feu d\u2019applications web afin de bloquer les requ\u00eates contenant l\u2019en-t\u00eate HTTP x-middleware-subrequest.<br \/>\nCorrection de la CVE-2025-29927 avec JFrog Xray et JFrog Advanced Security<br \/>\nComme toujours, JFrog Security Essentials (Xray) permet d\u2019identifier chaque occurrence de Next.js dans l\u2019ensemble de votre base de code et de vos artefacts compil\u00e9s, notamment les conteneurs Docker, les packages de d\u00e9p\u00f4ts et m\u00eame les fichiers binaires autonomes.<\/p>\n<p>JFrog Advanced Security a \u00e9galement \u00e9t\u00e9 mis \u00e0 jour avec un scanner d\u2019analyse contextuelle qui v\u00e9rifie automatiquement si votre d\u00e9ploiement Next.js est r\u00e9ellement vuln\u00e9rable \u00e0 la CVE-2025-29927, en d\u00e9terminant si un middleware Next.js est utilis\u00e9.<\/p>\n<p>Plateforme JFrog\u00a0: analyse contextuelle JFrog de la CVE-2025-29927 dans Next.js (cliquez sur l\u2019image pour l\u2019afficher en taille r\u00e9elle)<\/p>\n<p>Consultez le centre de recherche en s\u00e9curit\u00e9 de JFrog pour en savoir plus sur les derni\u00e8res CVE, vuln\u00e9rabilit\u00e9s et correctifs.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>CVE-2025-29927 &#8211; Le 21 mars 2025, les mainteneurs de Next.js ont annonc\u00e9 une nouvelle vuln\u00e9rabilit\u00e9 permettant de contourner les m\u00e9canismes d\u2019autorisation\u00a0: CVE-2025-29927. Cette vuln\u00e9rabilit\u00e9 peut \u00eatre facilement exploit\u00e9e afin de contourner les m\u00e9canismes d\u2019autorisation. Dans certains cas, son exploitation peut \u00e9galement entra\u00eener un empoisonnement du cache et un d\u00e9ni de service. Quelles versions de Next.js &hellip;<\/p>\n","protected":false},"author":590,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[10529,10153],"tags":[11398,10000,11406,9999,11286],"class_list":["post-174412","post","type-post","status-publish","format-standard","hentry","category-communaute","category-securite-et-devsecops","tag-cve-2","tag-cve-analyse","tag-next-js","tag-securite-recherche","tag-vulnerabilites"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v28.6) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Comprendre le contournement d\u2019autorisation de Next.js li\u00e9 \u00e0 la CVE-2025-29927<\/title>\n<meta name=\"description\" content=\"Prot\u00e9gez vos applications contre la CVE-2025-29927, une attaque peu complexe capable de contourner les m\u00e9canismes d\u2019authentification de Next.js et d\u2019\u00e9viter des contr\u00f4les essentiels d\u2019autorisation et de validation\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/jfrog.com\/fr\/wp-json\/wp\/v2\/posts\/174412\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"CVE-2025-29927 - Vuln\u00e9rabilit\u00e9 de contournement d\u2019autorisation dans Next.js\u00a0: Tout ce que vous devez savoir\" \/>\n<meta property=\"og:description\" content=\"Prot\u00e9gez vos applications contre la CVE-2025-29927, une attaque peu complexe capable de contourner les m\u00e9canismes d\u2019authentification de Next.js et d\u2019\u00e9viter des contr\u00f4les essentiels d\u2019autorisation et de validation\" \/>\n<meta property=\"og:url\" content=\"https:\/\/jfrog.com\/fr\/blog\/cve-2025-29927-next-js-authorization-bypass\/\" \/>\n<meta property=\"og:site_name\" content=\"JFrog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/artifrog\" \/>\n<meta property=\"article:published_time\" content=\"2026-09-15T09:29:03+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-09-23T06:38:10+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/media.jfrog.com\/wp-content\/uploads\/2025\/03\/23164150\/Next.js_CVE-2025-29927_1200x628.png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@jfrog\" \/>\n<meta name=\"twitter:site\" content=\"@jfrog\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/jfrog.com\\\/fr\\\/blog\\\/cve-2025-29927-next-js-authorization-bypass\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/jfrog.com\\\/fr\\\/blog\\\/cve-2025-29927-next-js-authorization-bypass\\\/\"},\"author\":{\"name\":\"\",\"@id\":\"\"},\"headline\":\"CVE-2025-29927 &#8211; Vuln\u00e9rabilit\u00e9 de contournement d\u2019autorisation dans Next.js\u00a0: Tout ce que vous devez savoir\",\"datePublished\":\"2026-09-15T09:29:03+00:00\",\"dateModified\":\"2026-09-23T06:38:10+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/jfrog.com\\\/fr\\\/blog\\\/cve-2025-29927-next-js-authorization-bypass\\\/\"},\"wordCount\":2199,\"publisher\":{\"@id\":\"https:\\\/\\\/jfrog.com\\\/fr\\\/#organization\"},\"keywords\":[\"cve\",\"cve-analyse\",\"next.js\",\"securite-recherche\",\"vuln\u00e9rabilit\u00e9s\"],\"articleSection\":[\"Communaut\u00e9\",\"S\u00e9curit\u00e9 et DevSecOps\"],\"inLanguage\":\"fr-FR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/jfrog.com\\\/fr\\\/blog\\\/cve-2025-29927-next-js-authorization-bypass\\\/\",\"url\":\"https:\\\/\\\/jfrog.com\\\/fr\\\/blog\\\/cve-2025-29927-next-js-authorization-bypass\\\/\",\"name\":\"Comprendre le contournement d\u2019autorisation de Next.js li\u00e9 \u00e0 la CVE-2025-29927\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/jfrog.com\\\/fr\\\/#website\"},\"datePublished\":\"2026-09-15T09:29:03+00:00\",\"dateModified\":\"2026-09-23T06:38:10+00:00\",\"description\":\"Prot\u00e9gez vos applications contre la CVE-2025-29927, une attaque peu complexe capable de contourner les m\u00e9canismes d\u2019authentification de Next.js et d\u2019\u00e9viter des contr\u00f4les essentiels d\u2019autorisation et de validation\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/jfrog.com\\\/fr\\\/blog\\\/cve-2025-29927-next-js-authorization-bypass\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/jfrog.com\\\/fr\\\/blog\\\/cve-2025-29927-next-js-authorization-bypass\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/jfrog.com\\\/fr\\\/blog\\\/cve-2025-29927-next-js-authorization-bypass\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/jfrog.com\\\/fr\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"CVE-2025-29927 &#8211; Vuln\u00e9rabilit\u00e9 de contournement d\u2019autorisation dans Next.js\u00a0: Tout ce que vous devez savoir\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/jfrog.com\\\/fr\\\/#website\",\"url\":\"https:\\\/\\\/jfrog.com\\\/fr\\\/\",\"name\":\"JFrog\",\"description\":\"Deliver Trusted Software Releases at Speed and Scale\",\"publisher\":{\"@id\":\"https:\\\/\\\/jfrog.com\\\/fr\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/jfrog.com\\\/fr\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/jfrog.com\\\/fr\\\/#organization\",\"name\":\"JFrog\",\"url\":\"https:\\\/\\\/jfrog.com\\\/fr\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/jfrog.com\\\/fr\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/speedmedia2.jfrog.com\\\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\\\/jfrog.com\\\/wp-content\\\/uploads\\\/2025\\\/05\\\/Logo.svg\",\"contentUrl\":\"https:\\\/\\\/speedmedia2.jfrog.com\\\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\\\/jfrog.com\\\/wp-content\\\/uploads\\\/2025\\\/05\\\/Logo.svg\",\"width\":74,\"height\":73,\"caption\":\"JFrog\"},\"image\":{\"@id\":\"https:\\\/\\\/jfrog.com\\\/fr\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/artifrog\",\"https:\\\/\\\/x.com\\\/jfrog\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/455737\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UCh2hNg76zo3d1qQqTWIQxDg\",\"https:\\\/\\\/www.wikidata.org\\\/wiki\\\/Q98608948\"],\"description\":\"We set out on our Liquid Software journey in 2008, with the mission to transform the way enterprises manage and release software updates. The world expects software to update continuously, securely, non-intrusively and without user intervention. This hyper-connected experience can only be enabled by automation with an end-to-end DevOps platform and a binary-centric focus. With this in mind, we\u2019ve developed the JFrog Platform, ushering in a new era of DevOps and DevSecOps standards that power continuous updates. More than a decade after our founding, with thousands of customers and millions of users globally, JFrog has become the \u201cDatabase of DevOps\u201d and the de-facto standard in release and update management.\",\"legalName\":\"Jfrog, Inc.\",\"numberOfEmployees\":{\"@type\":\"QuantitativeValue\",\"minValue\":\"1001\",\"maxValue\":\"5000\"}},{\"@type\":\"Person\",\"@id\":\"\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Comprendre le contournement d\u2019autorisation de Next.js li\u00e9 \u00e0 la CVE-2025-29927","description":"Prot\u00e9gez vos applications contre la CVE-2025-29927, une attaque peu complexe capable de contourner les m\u00e9canismes d\u2019authentification de Next.js et d\u2019\u00e9viter des contr\u00f4les essentiels d\u2019autorisation et de validation","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/jfrog.com\/fr\/wp-json\/wp\/v2\/posts\/174412","og_locale":"fr_FR","og_type":"article","og_title":"CVE-2025-29927 - Vuln\u00e9rabilit\u00e9 de contournement d\u2019autorisation dans Next.js\u00a0: Tout ce que vous devez savoir","og_description":"Prot\u00e9gez vos applications contre la CVE-2025-29927, une attaque peu complexe capable de contourner les m\u00e9canismes d\u2019authentification de Next.js et d\u2019\u00e9viter des contr\u00f4les essentiels d\u2019autorisation et de validation","og_url":"https:\/\/jfrog.com\/fr\/blog\/cve-2025-29927-next-js-authorization-bypass\/","og_site_name":"JFrog","article_publisher":"https:\/\/www.facebook.com\/artifrog","article_published_time":"2026-09-15T09:29:03+00:00","article_modified_time":"2026-09-23T06:38:10+00:00","og_image":[{"url":"https:\/\/media.jfrog.com\/wp-content\/uploads\/2025\/03\/23164150\/Next.js_CVE-2025-29927_1200x628.png","type":"","width":"","height":""}],"twitter_card":"summary_large_image","twitter_creator":"@jfrog","twitter_site":"@jfrog","twitter_misc":{"\u00c9crit par":"","Dur\u00e9e de lecture estim\u00e9e":"10 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/jfrog.com\/fr\/blog\/cve-2025-29927-next-js-authorization-bypass\/#article","isPartOf":{"@id":"https:\/\/jfrog.com\/fr\/blog\/cve-2025-29927-next-js-authorization-bypass\/"},"author":{"name":"","@id":""},"headline":"CVE-2025-29927 &#8211; Vuln\u00e9rabilit\u00e9 de contournement d\u2019autorisation dans Next.js\u00a0: Tout ce que vous devez savoir","datePublished":"2026-09-15T09:29:03+00:00","dateModified":"2026-09-23T06:38:10+00:00","mainEntityOfPage":{"@id":"https:\/\/jfrog.com\/fr\/blog\/cve-2025-29927-next-js-authorization-bypass\/"},"wordCount":2199,"publisher":{"@id":"https:\/\/jfrog.com\/fr\/#organization"},"keywords":["cve","cve-analyse","next.js","securite-recherche","vuln\u00e9rabilit\u00e9s"],"articleSection":["Communaut\u00e9","S\u00e9curit\u00e9 et DevSecOps"],"inLanguage":"fr-FR"},{"@type":"WebPage","@id":"https:\/\/jfrog.com\/fr\/blog\/cve-2025-29927-next-js-authorization-bypass\/","url":"https:\/\/jfrog.com\/fr\/blog\/cve-2025-29927-next-js-authorization-bypass\/","name":"Comprendre le contournement d\u2019autorisation de Next.js li\u00e9 \u00e0 la CVE-2025-29927","isPartOf":{"@id":"https:\/\/jfrog.com\/fr\/#website"},"datePublished":"2026-09-15T09:29:03+00:00","dateModified":"2026-09-23T06:38:10+00:00","description":"Prot\u00e9gez vos applications contre la CVE-2025-29927, une attaque peu complexe capable de contourner les m\u00e9canismes d\u2019authentification de Next.js et d\u2019\u00e9viter des contr\u00f4les essentiels d\u2019autorisation et de validation","breadcrumb":{"@id":"https:\/\/jfrog.com\/fr\/blog\/cve-2025-29927-next-js-authorization-bypass\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/jfrog.com\/fr\/blog\/cve-2025-29927-next-js-authorization-bypass\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/jfrog.com\/fr\/blog\/cve-2025-29927-next-js-authorization-bypass\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/jfrog.com\/fr\/"},{"@type":"ListItem","position":2,"name":"CVE-2025-29927 &#8211; Vuln\u00e9rabilit\u00e9 de contournement d\u2019autorisation dans Next.js\u00a0: Tout ce que vous devez savoir"}]},{"@type":"WebSite","@id":"https:\/\/jfrog.com\/fr\/#website","url":"https:\/\/jfrog.com\/fr\/","name":"JFrog","description":"Deliver Trusted Software Releases at Speed and Scale","publisher":{"@id":"https:\/\/jfrog.com\/fr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/jfrog.com\/fr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/jfrog.com\/fr\/#organization","name":"JFrog","url":"https:\/\/jfrog.com\/fr\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/jfrog.com\/fr\/#\/schema\/logo\/image\/","url":"https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/jfrog.com\/wp-content\/uploads\/2025\/05\/Logo.svg","contentUrl":"https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/jfrog.com\/wp-content\/uploads\/2025\/05\/Logo.svg","width":74,"height":73,"caption":"JFrog"},"image":{"@id":"https:\/\/jfrog.com\/fr\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/artifrog","https:\/\/x.com\/jfrog","https:\/\/www.linkedin.com\/company\/455737","https:\/\/www.youtube.com\/channel\/UCh2hNg76zo3d1qQqTWIQxDg","https:\/\/www.wikidata.org\/wiki\/Q98608948"],"description":"We set out on our Liquid Software journey in 2008, with the mission to transform the way enterprises manage and release software updates. The world expects software to update continuously, securely, non-intrusively and without user intervention. This hyper-connected experience can only be enabled by automation with an end-to-end DevOps platform and a binary-centric focus. With this in mind, we\u2019ve developed the JFrog Platform, ushering in a new era of DevOps and DevSecOps standards that power continuous updates. More than a decade after our founding, with thousands of customers and millions of users globally, JFrog has become the \u201cDatabase of DevOps\u201d and the de-facto standard in release and update management.","legalName":"Jfrog, Inc.","numberOfEmployees":{"@type":"QuantitativeValue","minValue":"1001","maxValue":"5000"}},{"@type":"Person","@id":""}]}},"_links":{"self":[{"href":"https:\/\/jfrog.com\/fr\/wp-json\/wp\/v2\/posts\/174412","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jfrog.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jfrog.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jfrog.com\/fr\/wp-json\/wp\/v2\/users\/590"}],"replies":[{"embeddable":true,"href":"https:\/\/jfrog.com\/fr\/wp-json\/wp\/v2\/comments?post=174412"}],"version-history":[{"count":0,"href":"https:\/\/jfrog.com\/fr\/wp-json\/wp\/v2\/posts\/174412\/revisions"}],"wp:attachment":[{"href":"https:\/\/jfrog.com\/fr\/wp-json\/wp\/v2\/media?parent=174412"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jfrog.com\/fr\/wp-json\/wp\/v2\/categories?post=174412"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jfrog.com\/fr\/wp-json\/wp\/v2\/tags?post=174412"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}