{"id":174413,"date":"2025-03-24T11:31:09","date_gmt":"2025-03-24T09:31:09","guid":{"rendered":"https:\/\/jfrog.com\/blog\/die-cve-2025-29927-sicherheitsluecke-zur-umgehung-der-autorisierung-in-next-js-alles-was-sie-darueber-wissen-muessen\/"},"modified":"2026-09-15T13:14:50","modified_gmt":"2026-09-15T11:14:50","slug":"cve-2025-29927-next-js-authorization-bypass","status":"publish","type":"post","link":"https:\/\/jfrog.com\/de\/blog\/cve-2025-29927-next-js-authorization-bypass\/","title":{"rendered":"Die CVE-2025-29927-Sicherheitsl\u00fccke zur Umgehung der Autorisierung in Next.js: Alles, was Sie dar\u00fcber wissen m\u00fcssen"},"content":{"rendered":"<p>CVE-2025-29927 &#8211; <img decoding=\"async\" src=\"https:\/\/media.jfrog.com\/wp-content\/uploads\/2025\/03\/23164146\/Next.js_CVE-2025-29927_863x300.png\" alt=\"CVE-2025-29927 - \" width=\"863\" height=\"300\" \/><\/p>\n<p>Am 21.\u00a0M\u00e4rz\u00a02025 <a href=\"https:\/\/nextjs.org\/blog\/cve-2025-29927\" target=\"_blank\" rel=\"noopener\">gaben die Maintainer von Next.js eine neue Sicherheitsl\u00fccke bekannt, die eine Umgehung der Autorisierung erm\u00f6glicht<\/a>\u00a0\u2013 CVE-2025-29927. Diese Sicherheitsl\u00fccke kann leicht ausgenutzt werden, um die Autorisierung zu umgehen. In einigen F\u00e4llen kann die Ausnutzung der Sicherheitsl\u00fccke auch zu Cache Poisoning und einem Denial-of-Service f\u00fchren.<\/p>\n<h2>Welche Versionen von Next.js sind betroffen?<\/h2>\n<p>Next.js 15.x\u00a0\u2013 von Version 15.0.0 bis einschlie\u00dflich 15.2.2.<\/p>\n<p>Next.js 14.x\u00a0\u2013 von Version 14.0.0 bis einschlie\u00dflich 14.2.24.<\/p>\n<p>Fr\u00fchere Next.js-Versionen\u00a0\u2013 ab Version 11.1.4 bis einschlie\u00dflich 13.5.6.<\/p>\n<h2>Angriffsszenarien f\u00fcr CVE-2025-29927<\/h2>\n<p>Damit die Schwachstelle \u00fcberhaupt ausgenutzt werden kann, muss der betroffene Next.js-Server eine Next.js-Middleware verwenden. Dies umfasst das Einbinden einer Datei <code>middleware.js<\/code> oder <code>middleware.ts<\/code> ( <code>_middleware.js<\/code> oder <code>_middleware.ts<\/code>\u00a0 f\u00fcr \u00e4ltere Versionen von Next.js). Diese Datei definiert und exportiert die Funktion <code>middleware<\/code>, die die Logik enth\u00e4lt, die bei jeder eingehenden HTTP-Anfrage ausgef\u00fchrt wird.<\/p>\n<h3>Umgehung der Autorisierung<\/h3>\n<p>Dies ist das wahrscheinlichste Szenario, das CVE-2025-29927 ausnutzt.<\/p>\n<p>Dieses Szenario ist relevant, wenn der Next.js-Server des Opfers die Middleware-Funktion zur Durchf\u00fchrung der Autorisierung verwendet (und die zugrunde liegende Anwendung keine anderen Autorisierungsebenen verwendet).<\/p>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-150102 aligncenter\" src=\"https:\/\/media.jfrog.com\/wp-content\/uploads\/2025\/03\/24115029\/auth_nobypass.png\" alt=\"\" width=\"1185\" height=\"286\" \/><\/p>\n<p style=\"text-align: center;\"><em>Szenario in Bezug auf die Autorisierungs-Middleware ohne Ausnutzung von CVE-2025-29927<\/em><\/p>\n<p style=\"text-align: center;\"><img decoding=\"async\" class=\"alignnone size-full wp-image-150105\" src=\"https:\/\/media.jfrog.com\/wp-content\/uploads\/2025\/03\/24115144\/auth_bypass.png\" alt=\"\" width=\"1202\" height=\"286\" \/><\/p>\n<p style=\"text-align: center;\"><em>Autorisierungs-Middleware-Szenario ohne Ausnutzung von CVE-2025-29927<\/em><\/p>\n<h3>Denial of Service durch Cache Poisoning<\/h3>\n<p>Next.js-Middleware kann auch bei der Lokalisierung von Websites helfen. Beispielsweise kann die Middleware Nutzer basierend auf ihrem Standort automatisch weiterleiten, indem sie etwa <code>\/en<\/code> f\u00fcr englischsprachige oder <code>\/fr<\/code> f\u00fcr franz\u00f6sische Besucher hinzuf\u00fcgt. Wenn jemand CVE-2025-29927 ausnutzt und die Middleware umgeht, die diese Weiterleitungen durchf\u00fchrt, landen sie, statt auf einer lokalisierten Seite, auf der Website-Root (<code>\/<\/code>), f\u00fcr die die Entwickler nie eine Seite erstellt haben. Wozu f\u00fchrt das? Einem 404-Fehler oder einem 500-Serverfehler, je nach Konfiguration.<\/p>\n<p>Wenn die Website ein\u00a0<strong>CDN oder eine andere Caching-Schicht<\/strong> verwendet, k\u00f6nnen diese Fehlerantworten gespeichert und zuk\u00fcnftigen Besuchern bereitgestellt werden. Sobald sie zwischengespeichert sind, sehen legitime Nutzer m\u00f6glicherweise <strong>weltweit<\/strong> fehlerhafte Seiten. Dadurch entsteht ein selbst verursachter Ausfall, der die Verf\u00fcgbarkeit beeintr\u00e4chtigt, ohne eine einzige Zeile Code zu \u00e4ndern.<\/p>\n<p style=\"text-align: center;\"><img decoding=\"async\" class=\"alignnone size-full wp-image-150107\" src=\"https:\/\/media.jfrog.com\/wp-content\/uploads\/2025\/03\/24115148\/dos_nobypass.png\" alt=\"\" width=\"808\" height=\"286\" \/><\/p>\n<p style=\"text-align: center;\"><em>Redirector-Middleware-Szenario ohne Ausnutzung von CVE-2025-29927<\/em><\/p>\n<p>\u00a0<\/p>\n<p style=\"text-align: center;\"><img decoding=\"async\" class=\"alignnone size-full wp-image-150106\" src=\"https:\/\/media.jfrog.com\/wp-content\/uploads\/2025\/03\/24115146\/dos_bypass.png\" alt=\"\" width=\"1730\" height=\"539\" \/><\/p>\n<p style=\"text-align: center;\"><em>Redirector-Middleware-Szenario mit Ausnutzung von CVE-2025-29927<\/em><\/p>\n<p>\u00a0<\/p>\n<h2>Next.js-Middleware verstehen<\/h2>\n<p>Next.js-Middleware ist eine leistungsstarke Funktion, die in Next.js v12 eingef\u00fchrt wurde und Entwicklern erm\u00f6glicht, Code auszuf\u00fchren, bevor eine Anfrage abgeschlossen wird. Middleware wird am Edge ausgef\u00fchrt, n\u00e4her am Nutzer als herk\u00f6mmlicher serverseitiger Code, und kann Response-Header \u00e4ndern, Anfragen umschreiben oder umleiten und\u00a0\u2013 was am wichtigsten ist\u00a0\u2013 Authentifizierungs- und Autorisierungspr\u00fcfungen implementieren.<\/p>\n<p>Middleware in Next.js wird vor dem Rendering ausgef\u00fchrt und kann \u00fcber Matcher-Konfigurationen f\u00fcr die Ausf\u00fchrung auf bestimmten Pfaden konfiguriert werden.<\/p>\n<p>Einige Anwendungsbeispiele f\u00fcr Next.js-Middleware sind:<\/p>\n<ul>\n<li aria-level=\"1\">\u00dcberpr\u00fcfung von Authentifizierungs-Tokens<\/li>\n<li aria-level=\"1\">Implementierung einer rollenbasierten Zugriffskontrolle<\/li>\n<li aria-level=\"1\">Weiterleitung nicht authentifizierter Benutzer<\/li>\n<\/ul>\n<p>Eine typische Next.js-Middleware-Implementierung, die eine Authentifizierung durchf\u00fchrt, k\u00f6nnte wie folgt aussehen:<\/p>\n<pre class=\"language-javascript\"><code> \r\n\r\n import { NextResponse } from 'next\/server'\r\n import type { NextRequest } from 'next\/server'\r\n\r\n export function middleware(request: NextRequest) {\r\n   \/\/ Token des Benutzers aus den Cookies abrufen\r\n   const token = request.cookies.get('token').value\r\n  \r\n   \/\/ Pr\u00fcfen, ob der Benutzer authentifiziert ist\r\n   const isAuthenticated = validateToken(token)\r\n  \r\n   \/\/ Wenn nicht authentifiziert, zur Anmeldung weiterleiten\r\n   if (!isAuthenticated) {\r\n     return NextResponse.redirect(new URL('\/login', request.url))\r\n   }\r\n  \r\n   \/\/ Bei erfolgreicher Authentifizierung mit der gesch\u00fctzten Route fortfahren\r\n   return NextResponse.next()\r\n }\r\n\r\n \/\/ Konfigurieren, welche Routen diese Middleware verwenden\r\n export const config = {\r\n   matcher: ['\/dashboard\/:path*', '\/settings\/:path*'],\r\n }\r\n\u00a0\r\n<\/code><\/pre>\n<h2>Technische Analyse von CVE-2025-29927<\/h2>\n<p>CVE-2025-29927 deckt einen kritischen Fehler bei der Verarbeitung bestimmter Anfragetypen durch die Next.js-Middleware auf, der zu einer m\u00f6glichen Umgehung von Authentifizierung und Autorisierung f\u00fchrt.<\/p>\n<p>Diese Schwachstelle betrifft Anwendungen, die in bestimmten Konfigurationen Middleware zur Zugriffskontrolle verwenden.<\/p>\n<p>Die Schwachstelle beruht auf der inkonsistenten Verarbeitung der benutzerdefinierten <code>x-middleware-subrequest<\/code>-Header durch Next.js. Wenn dieser Header in Anfragen an gesch\u00fctzte Routen enthalten ist, erlaubt Next.js der Anfrage f\u00e4lschlicherweise, die Ausf\u00fchrung der Middleware vollst\u00e4ndig zu umgehen. Der Header veranlasst die Next.js-Laufzeitumgebung, die Phase der Middleware-Auswertung zu \u00fcberspringen, w\u00e4hrend der zugrundeliegende Route-Handler weiterhin verarbeitet wird.<\/p>\n<p>Um diese Schwachstelle auszunutzen, muss ein Angreifer beim Zugriff auf gesch\u00fctzte Ressourcen lediglich den Header <code>x-middleware-subrequest<\/code> zu seinen HTTP-Anfragen hinzuf\u00fcgen. Beispielsweise wird eine Anfrage an <code>\/api\/admin\/users<\/code>, die normalerweise durch Autorisierungspr\u00fcfungen der Middleware blockiert w\u00fcrde, bei Vorhandensein dieses Headers normal verarbeitet. Der Server verarbeitet die Anfrage, als w\u00e4re die Middleware bereits ausgef\u00fchrt worden und h\u00e4tte sie genehmigt, wodurch eine vollst\u00e4ndige Umgehung der Sicherheitsmechanismen entsteht. Diese Header-Manipulation l\u00e4sst sich einfach mit Browser-Entwicklertools, curl-Befehlen oder einfachen Skripten umsetzen.<\/p>\n<p>Der <a href=\"https:\/\/github.com\/vercel\/next.js\/blob\/v15.2.2\/packages\/next\/src\/server\/web\/sandbox\/sandbox.ts#L94-L114\">anf\u00e4llige Code<\/a> in der neuesten anf\u00e4lligen Version (v15.2.2) lautet wie folgt:<\/p>\n<pre class=\"language-javascript\"><code>\r\n export const run = withTaggedErrors(async function runWithTaggedErrors(params) {\r\n const runtime = await getRuntimeContext(params)\r\n const subreq = params.request.headers[`x-middleware-subrequest`]        [1]\r\n const subrequests = typeof subreq === 'string' ? subreq.split(':') : [] [2]\r\n\r\n const MAX_RECURSION_DEPTH = 5\r\n const depth = subrequests.reduce(                                       [3]\r\n  (acc, curr) =&gt; (curr === params.name ? acc + 1 : acc),\r\n  0\r\n )\r\n\r\n if (depth &gt;= MAX_RECURSION_DEPTH) {                                     [4]\r\n  return {\r\n     waitUntil: Promise.resolve(),\r\n     response: new runtime.context.Response(null, {\r\n       headers: {\r\n         'x-middleware-next': '1',\r\n       },\r\n     }),\r\n   }\r\n }\r\n\u00a0\r\n<\/code><\/pre>\n<p>Der Header <code>x-middleware-subrequest<\/code> wird in [1] aus der Anfrage \u00fcbernommen.<br \/>\nAnschlie\u00dfend wird er  mithilfe des Trennzeichens <code>:<\/code> in [2] aufgeteilt und durch eine Reduce-Funktion gef\u00fchrt, die z\u00e4hlt, wie viele Elemente in diesem Array (<code>subrequests<\/code>) in [3] mit dem Dateinamen der Middleware \u00fcbereinstimmen.<br \/>\nWenn diese Zahl in [4] gleich oder gr\u00f6\u00dfer als <code>MAX_RECURSION_DEPTH<\/code> (also <code>5<\/code>) ist, umgeht sie die Funktionalit\u00e4t der Middleware und leitet sie an ihre Route weiter.<\/p>\n<h2>M\u00f6gliche Werte f\u00fcr Attack-Header<\/h2>\n<div class=\"p-rich_text_section\">\n<p>Wie bereits erl\u00e4utert, lautet der Name des anf\u00e4lligen Headers\u00a0 <code>x-middleware-subrequest<\/code>. Der ihm zugewiesene Wert h\u00e4ngt von Next.js ab, da er entsprechend dem Wert von <code>middlewareInfo.name<\/code> festgelegt wird, der im Wesentlichen dem Pfad zur Datei <code>middleware.js<\/code> oder <code>middleware.ts<\/code> entspricht.<\/p>\n<p>Vor Version 12.2 hie\u00df die Middleware-Datei tats\u00e4chlich <code>_middleware.js<\/code>\/<code>_middleware.ts<\/code> und konnte sich auf jeder Ebene des Unterverzeichnisses befinden, auf das man zugreifen m\u00f6chte. In diesem Fall versuchen wir, auf <code>\/admin\/dashboard<\/code> zuzugreifen, was bedeutet, dass <code>middlewareInfo.name<\/code> <code class=\"c-mrkdwn__code\" data-stringify-type=\"code\">pages\/_middleware<\/code>\u00a0oder\u00a0<code class=\"c-mrkdwn__code\" data-stringify-type=\"code\">pages\/admin\/_middleware<\/code> h\u00e4tte sein k\u00f6nnen. H\u00e4tten wir\u00a0<code class=\"c-mrkdwn__code\" data-stringify-type=\"code\">dashboard<\/code>\u00a0als Verzeichnis mit einer\u00a0<code class=\"c-mrkdwn__code\" data-stringify-type=\"code\">index.js<\/code>-Datei\u00a0festgelegt,h\u00e4tte es auch\u00a0<code class=\"c-mrkdwn__code\" data-stringify-type=\"code\">pages\/admin\/dashboard\/_middleware<\/code> sein k\u00f6nnen.<\/p>\n<p>Wenn wir beispielsweise mit unserem PoC-Code eine Next.js-Version vor 12.2 verwendet h\u00e4tten, h\u00e4tten wir <code class=\"c-mrkdwn__code\" data-stringify-type=\"code\">middleware.js<\/code>\u00a0in das Verzeichnis <code class=\"c-mrkdwn__code\" data-stringify-type=\"code\">pages<\/code>\u00a0verschieben und in <code class=\"c-mrkdwn__code\" data-stringify-type=\"code\">_middleware.js<\/code> umbenennen m\u00fcssen, und unsere \u201eb\u00f6sartige\u201c HTTP-Anfrage w\u00fcrde lauten:<\/p>\n<pre class=\"language-javascript\"><code>\r\n GET \/admin\/dashboard HTTP\/1.1\r\n x-middleware-subrequest: pages\/_middleware\r\n\u00a0\r\n<\/code><\/pre>\n<p>Seit Version 12.2 und bis Version 13 muss die Middleware-Datei im Stammverzeichnis des Projekts vorhanden sein und muss <code class=\"c-mrkdwn__code\" data-stringify-type=\"code\">middleware.js\/middleware.ts<\/code> hei\u00dfen. Um diese Versionen von Next.js anzugreifen, w\u00fcrde die Payload f\u00fcr den Header also einfach <code class=\"c-mrkdwn__code\" data-stringify-type=\"code\">middleware<\/code> lauten\u00a0\u2013 und wir wissen mit Sicherheit, dass sie sich im Stammverzeichnis befindet.<\/p>\n<p>H\u00e4tten wir eine Next.js-Version zwischen den Versionen 12.2 und 13 verwendet, w\u00fcrde sich unsere \u201eb\u00f6sartige\u201c Anfrage wie folgt \u00e4ndern:<\/p>\n<pre class=\"language-javascript\"><code>\r\n GET \/admin\/dashboard HTTP\/1.1\r\n x-middleware-subrequest: middleware\r\n\u00a0\r\n<\/code><\/pre>\n<p>Ab Version 13 von Next.js wurde die zuvor beschriebene Rekursionspr\u00fcfung implementiert \u2013 das bedeutet, dass ein Angreifer den b\u00f6sartigen Header auf <code class=\"c-mrkdwn__code\" data-stringify-type=\"code\">middleware:middleware:middleware:middleware:middleware<\/code> setzen m\u00fcsste, um 5 Rekursionsebenen zu simulieren.<\/p>\n<p>Da unser PoC auf dieser Version l\u00e4uft, ist dies ein Ausschnitt aus der von uns verwendeten Anfrage:<\/p>\n<pre class=\"language-javascript\"><code>\r\n GET \/admin\/dashboard HTTP\/1.1\r\n x-middleware-subrequest: middleware:middleware:middleware:middleware:middleware\r\n\u00a0\r\n<\/code><\/pre>\n<p>Wichtig ist, dass sich der Middleware-Code in allen Phasen in einem <code class=\"c-mrkdwn__code\" data-stringify-type=\"code\">src<\/code>\u00a0-Verzeichnis h\u00e4tte befinden k\u00f6nnen \u2013 was bedeuten w\u00fcrde, dass zum Ausnutzen <code class=\"c-mrkdwn__code\" data-stringify-type=\"code\">src<\/code> den oben dargestellten Werten vorangestellt werden m\u00fcsste. Wenn wir unseren PoC-Code beispielsweise in einem <code class=\"c-mrkdwn__code\" data-stringify-type=\"code\">src<\/code>\u00a0-Verzeichnis abgelegt h\u00e4tten, h\u00e4tte unsere Payload wie folgt aussehen m\u00fcssen:<\/p>\n<pre class=\"language-javascript\"><code>\r\n GET \/admin\/dashboard HTTP\/1.1\r\n x-middleware-subrequest: src\/middleware:src\/middleware:src\/middleware:src\/middleware:src\/middleware.\r\n\u00a0\r\n<\/code><\/pre>\n<h2>Ausnutzung von CVE-2025-29927<\/h2>\n<p>Wie immer ist es am besten, die vollst\u00e4ndige Ausnutzung der Schwachstelle zu sehen, um zu verstehen, welche Next.js-Instanzen anf\u00e4llig w\u00e4ren.<\/p>\n<p>Wir haben eine eigene PoC-Website mit folgendem Arbeitsbaum eingerichtet:<\/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>Zun\u00e4chst unsere Anmeldeseite:<\/p>\n<p><img decoding=\"async\" class=\"alignnone wp-image-150120\" src=\"https:\/\/media.jfrog.com\/wp-content\/uploads\/2025\/03\/24120746\/image-4.png\" alt=\"\" width=\"403\" height=\"258\" \/><\/p>\n<div class=\"c-message_kit__blocks c-message_kit__blocks--rich_text\">\n<div class=\"c-message__message_blocks c-message__message_blocks--rich_text\" data-qa=\"message-text\">\n<div class=\"p-block_kit_renderer\" data-qa=\"block-kit-renderer\">\n<div class=\"p-block_kit_renderer__block_wrapper p-block_kit_renderer__block_wrapper--first\">\n<div class=\"p-rich_text_block\" dir=\"auto\">\n<div class=\"p-rich_text_section\">Folgendes passiert, wenn ein Benutzer ohne Administratorrechte versucht, sich anzumelden:<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p><img decoding=\"async\" class=\"alignnone wp-image-150121\" src=\"https:\/\/media.jfrog.com\/wp-content\/uploads\/2025\/03\/24120823\/image-5.png\" alt=\"\" width=\"405\" height=\"395\" \/><\/p>\n<div class=\"c-message_kit__blocks c-message_kit__blocks--rich_text\">\n<div class=\"c-message__message_blocks c-message__message_blocks--rich_text\" data-qa=\"message-text\">\n<div class=\"p-block_kit_renderer\" data-qa=\"block-kit-renderer\">\n<div class=\"p-block_kit_renderer__block_wrapper p-block_kit_renderer__block_wrapper--first\">\n<div class=\"p-rich_text_block\" dir=\"auto\">\n<div class=\"p-rich_text_section\">Und dies ist das Admin-Dashboard unter\u00a0<code class=\"c-mrkdwn__code\" data-stringify-type=\"code\">\/admin\/dashboard<\/code> mit den richtigen Anmeldedaten:<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-150122\" src=\"https:\/\/media.jfrog.com\/wp-content\/uploads\/2025\/03\/24120835\/image-6.png\" alt=\"\" width=\"1223\" height=\"567\" \/><\/p>\n<div class=\"c-message_kit__blocks c-message_kit__blocks--rich_text\">\n<div class=\"c-message__message_blocks c-message__message_blocks--rich_text\" data-qa=\"message-text\">\n<div class=\"p-block_kit_renderer\" data-qa=\"block-kit-renderer\">\n<div class=\"p-block_kit_renderer__block_wrapper p-block_kit_renderer__block_wrapper--first\">\n<div class=\"p-rich_text_block\" dir=\"auto\">\n<div class=\"p-rich_text_section\">Kommen wir zum Exploit\u00a0\u2013 versuchen wir zun\u00e4chst, eine GET-Anfrage an\u00a0<code class=\"c-mrkdwn__code\" data-stringify-type=\"code\">\/admin\/dashboard<\/code> ohne den sch\u00e4dlichen Header zu senden:<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-150123\" src=\"https:\/\/media.jfrog.com\/wp-content\/uploads\/2025\/03\/24120901\/image-7.png\" alt=\"\" width=\"1289\" height=\"175\" \/><\/p>\n<div class=\"c-message_kit__blocks c-message_kit__blocks--rich_text\">\n<div class=\"c-message__message_blocks c-message__message_blocks--rich_text\" data-qa=\"message-text\">\n<div class=\"p-block_kit_renderer\" data-qa=\"block-kit-renderer\">\n<div class=\"p-block_kit_renderer__block_wrapper p-block_kit_renderer__block_wrapper--first\">\n<div class=\"p-rich_text_block\" dir=\"auto\">\n<div class=\"p-rich_text_section\">Wir erhalten eine \u201e401 Unauthorized\u201c-Antwort, da unsere Middleware aktiv wird und erkennt, dass es sich nicht um ein Admin-Konto handelt:<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p><img decoding=\"async\" class=\"alignnone wp-image-150124\" src=\"https:\/\/media.jfrog.com\/wp-content\/uploads\/2025\/03\/24120909\/image-8.png\" alt=\"\" width=\"237\" height=\"195\" \/><\/p>\n<div class=\"c-message_kit__blocks c-message_kit__blocks--rich_text\">\n<div class=\"c-message__message_blocks c-message__message_blocks--rich_text\" data-qa=\"message-text\">\n<div class=\"p-block_kit_renderer\" data-qa=\"block-kit-renderer\">\n<div class=\"p-block_kit_renderer__block_wrapper p-block_kit_renderer__block_wrapper--first\">\n<div class=\"p-rich_text_block\" dir=\"auto\">\n<div class=\"p-rich_text_section\">Versuchen wir jedoch dasselbe noch einmal mit dem Header\u00a0<code class=\"c-mrkdwn__code\" data-stringify-type=\"code\">x-middleware-subrequest<\/code><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-150125\" src=\"https:\/\/media.jfrog.com\/wp-content\/uploads\/2025\/03\/24120918\/image-9.png\" alt=\"\" width=\"1164\" height=\"238\" \/><\/p>\n<div class=\"c-message_kit__blocks c-message_kit__blocks--rich_text\">\n<div class=\"c-message__message_blocks c-message__message_blocks--rich_text\" data-qa=\"message-text\">\n<div class=\"p-block_kit_renderer\" data-qa=\"block-kit-renderer\">\n<div class=\"p-block_kit_renderer__block_wrapper p-block_kit_renderer__block_wrapper--first\">\n<div class=\"p-rich_text_block\" dir=\"auto\">\n<div class=\"p-rich_text_section\">und wir erhalten eine 200-OK-Antwort!<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p><img decoding=\"async\" class=\"alignnone wp-image-150126\" src=\"https:\/\/media.jfrog.com\/wp-content\/uploads\/2025\/03\/24120925\/image-10.png\" alt=\"\" width=\"239\" height=\"266\" \/><\/p>\n<div class=\"c-message_kit__blocks c-message_kit__blocks--rich_text\">\n<div class=\"c-message__message_blocks c-message__message_blocks--rich_text\" data-qa=\"message-text\">\n<div class=\"p-block_kit_renderer\" data-qa=\"block-kit-renderer\">\n<div class=\"p-block_kit_renderer__block_wrapper p-block_kit_renderer__block_wrapper--first\">\n<div class=\"p-rich_text_block\" dir=\"auto\">\n<div class=\"p-rich_text_section\">Mithilfe der Webvorschau k\u00f6nnen wir au\u00dferdem sehen, dass wir das Dokument bereits zuvor erhalten haben:<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-150128\" src=\"https:\/\/media.jfrog.com\/wp-content\/uploads\/2025\/03\/24120950\/image-12.png\" alt=\"\" width=\"1262\" height=\"538\" \/><\/p>\n<h2>Behebung von CVE-2025-29927<\/h2>\n<h3>Versions-Upgrade<\/h3>\n<p>Der beste Weg, CVE-2025-29927 zu beheben, ist ein Upgrade Ihrer Next.js-Version auf eine der behobenen Versionen\u00a0\u2013<\/p>\n<ul>\n<li>15.2.3<\/li>\n<li>14.2.25<\/li>\n<\/ul>\n<p>Stellen Sie sicher, dass Sie alle potenziell gef\u00e4hrdeten Versionen identifizieren, von 11.1.4 bis einschlie\u00dflich 13.5.6, 14.2.24 sowie 15.2.2, und aktualisieren Sie diese auf die neue, korrigierte Version.<\/p>\n<h3>Blockieren des anf\u00e4lligen Headers im Webserver<\/h3>\n<p>Wenn ein Upgrade keine Option ist, kann die Schwachstelle entsch\u00e4rft werden, indem Sie Ihren Webserver anweisen, den `x-middleware-subrequest` aus eingehenden Anfragen zu entfernen \u2013<\/p>\n<p>F\u00fcgen Sie in Apache die folgende Direktive zu Ihrer <code>.htaccess<\/code>-Datei hinzu (<code>mod_headers<\/code> muss installiert und aktiviert sein)\u00a0\u2013<\/p>\n<pre class=\"language-bash\"> &lt;IfModule mod_headers.c&gt;\r\n   RequestHeader unset x-middleware-subrequest\r\n &lt;\/IfModule&gt;<\/pre>\n<p>Bearbeiten Sie in NGINX Ihre Datei <code>nginx.conf<\/code> und f\u00fcgen Sie Ihrem Serverblock die folgende <code>proxy_set_header<\/code>-Direktive hinzu\u00a0\u2013<\/p>\n<p><code>\u00a0proxy_set_header x-middleware-subrequest &quot;&quot;;<\/code><\/p>\n<p>Beispiel:<\/p>\n<pre class=\"language-bash\"> server {\r\n\u00a0  listen 80;\r\n\u00a0  server_name your_domain.com;\r\n\u00a0  location \/ {\r\n\u00a0 \u00a0  proxy_set_header x-middleware-subrequest &quot;&quot;;\r\n\u00a0  }\r\n }<\/pre>\n<p>F\u00fcgen Sie in Express.js die folgende Direktive zu Ihrem JavaScript-Quellcode hinzu\u00a0\u2013<\/p>\n<pre class=\"language-python\"> \/\/ Middleware zum Entfernen des Headers x-middleware-subrequest\r\n app.use((req, res, next) =&gt; {\r\n   delete req.headers['x-middleware-subrequest'];\r\n   next();\r\n });<\/pre>\n<h3>Blockieren des anf\u00e4lligen Headers mit einer WAF<\/h3>\n<p>Wenn ein Upgrade keine Option ist, kann die Schwachstelle durch den Einsatz einer Web Application Firewall entsch\u00e4rft werden, die Anfragen blockiert, welche den HTTP-Header <code>x-middleware-subrequest`<\/code> enthalten.<\/p>\n<h3>Behebung von CVE-2025-29927 mit JFrog Xray und JFrog Advanced Security<\/h3>\n<p>Wie immer kann <a class=\"c-link\" href=\"https:\/\/jfrog.com\/de\/xray\/\" target=\"_blank\" rel=\"noopener noreferrer\" data-stringify-link=\"https:\/\/jfrog.com\/de\/xray\/\" data-sk=\"tooltip_parent\">JFrog Security Essentials (Xray)<\/a> verwendet werden, um das Vorkommen von Next.js in Ihrer gesamten Codebasis und kompilierten Artefakten zu identifizieren, einschlie\u00dflich Docker-Containern, Repository-Paketen und sogar eigenst\u00e4ndigen Bin\u00e4rdateien.<\/p>\n<p>Zus\u00e4tzlich wurde <a class=\"c-link\" href=\"https:\/\/jfrog.com\/de\/devops-native-security\/\" target=\"_blank\" rel=\"noopener noreferrer\" data-stringify-link=\"https:\/\/jfrog.com\/de\/devops-native-security\/\" data-sk=\"tooltip_parent\">JFrog Advanced Security<\/a> um einen <a href=\"https:\/\/jfrog.com\/de\/xray\/contextual-vulnerabilities\/\">Contextual Analysis<\/a> Scanner erweitert, der automatisch \u00fcberpr\u00fcft, ob Ihre Next.js-Bereitstellung tats\u00e4chlich f\u00fcr CVE-2025-29927 anf\u00e4llig ist, indem er pr\u00fcft, ob eine Next.js-Middleware verwendet wird.<\/p>\n<p><a href=\"https:\/\/media.jfrog.com\/wp-content\/uploads\/2025\/03\/24162310\/image-13-e1742826359138.png\"><img decoding=\"async\" class=\"alignnone wp-image-150155\" src=\"https:\/\/media.jfrog.com\/wp-content\/uploads\/2025\/03\/24162310\/image-13-e1742826359138.png\" alt=\"\" width=\"1138\" height=\"539\" srcset=\"https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2025\/03\/24162310\/image-13-e1742826359138.png?speedsize=w_1670 1670w, https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2025\/03\/24162310\/image-13-e1742826359138.png?speedsize=w_300 300w, https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2025\/03\/24162310\/image-13-e1742826359138.png?speedsize=w_768 768w, https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2025\/03\/24162310\/image-13-e1742826359138.png?speedsize=w_1024 1024w, https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2025\/03\/24162310\/image-13-e1742826359138.png?speedsize=w_1536 1536w\" sizes=\"(max-width: 1138px) 100vw, 1138px\" \/><\/a><br \/>\n<em>JFrog Plattform: JFrog Contextual Analysis f\u00fcr CVE-2025-29927 von Next.js (Klicken Sie auf das Bild f\u00fcr Vollansicht)<\/em><\/p>\n<p>Informieren Sie sich im <a href=\"https:\/\/research.jfrog.com\/\">JFrog Security Research<\/a> Center \u00fcber die neuesten CVEs, Schwachstellen und Fehlerbehebungen.<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>CVE-2025-29927 &#8211; Am 21.\u00a0M\u00e4rz\u00a02025 gaben die Maintainer von Next.js eine neue Sicherheitsl\u00fccke bekannt, die eine Umgehung der Autorisierung erm\u00f6glicht\u00a0\u2013 CVE-2025-29927. Diese Sicherheitsl\u00fccke kann leicht ausgenutzt werden, um die Autorisierung zu umgehen. In einigen F\u00e4llen kann die Ausnutzung der Sicherheitsl\u00fccke auch zu Cache Poisoning und einem Denial-of-Service f\u00fchren. Welche Versionen von Next.js sind betroffen? Next.js 15.x\u00a0\u2013 &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":[10515,10157],"tags":[11407,11015,10848,10347,10348],"class_list":["post-174413","post","type-post","status-publish","format-standard","hentry","category-community-de","category-sicherheit-und-devsecops","tag-next-js","tag-cve-de","tag-vulnerabilities-de","tag-cve-analysis-de","tag-security-research-de"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v22.6 (Yoast SEO v22.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>So umgeht CVE-2025-29927 die Autorisierung in Next.js<\/title>\n<meta name=\"description\" content=\"Sch\u00fctzen Sie Ihre Anwendungen vor CVE-2025-29927, einem Angriff mit geringer Komplexit\u00e4t, der Authentifizierungsmechanismen in Next.js umgehen und kritische Autorisierungs- und Validierungspr\u00fcfungen \u00fcberspringen kann.\" \/>\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\/de\/wp-json\/wp\/v2\/posts\/174413\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Die CVE-2025-29927-Sicherheitsl\u00fccke zur Umgehung der Autorisierung in Next.js: Alles, was Sie dar\u00fcber wissen m\u00fcssen\" \/>\n<meta property=\"og:description\" content=\"Sch\u00fctzen Sie Ihre Anwendungen vor CVE-2025-29927, einem Angriff mit geringer Komplexit\u00e4t, der Authentifizierungsmechanismen in Next.js umgehen und kritische Autorisierungs- und Validierungspr\u00fcfungen \u00fcberspringen kann.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/jfrog.com\/de\/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=\"2025-03-24T09:31:09+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-09-15T11:14:50+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=\"author\" content=\"drewt\" \/>\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=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"drewt\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/jfrog.com\/de\/blog\/cve-2025-29927-next-js-authorization-bypass\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/jfrog.com\/de\/blog\/cve-2025-29927-next-js-authorization-bypass\/\"},\"author\":{\"name\":\"drewt\",\"@id\":\"https:\/\/jfrog.com\/de\/#\/schema\/person\/c84b32acf61c0b7c85a306cb03697b28\"},\"headline\":\"Die CVE-2025-29927-Sicherheitsl\u00fccke zur Umgehung der Autorisierung in Next.js: Alles, was Sie dar\u00fcber wissen m\u00fcssen\",\"datePublished\":\"2025-03-24T09:31:09+00:00\",\"dateModified\":\"2026-09-15T11:14:50+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/jfrog.com\/de\/blog\/cve-2025-29927-next-js-authorization-bypass\/\"},\"wordCount\":1475,\"publisher\":{\"@id\":\"https:\/\/jfrog.com\/de\/#organization\"},\"image\":{\"@id\":\"https:\/\/jfrog.com\/de\/blog\/cve-2025-29927-next-js-authorization-bypass\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/jfrog.com\/wp-content\/uploads\/2025\/03\/Next.js_CVE-2025-29927_863x300.png\",\"keywords\":[\"next.js\",\"cve\",\"vulnerabilities\",\"cve-analysis\",\"security-research\"],\"articleSection\":[\"Community\",\"Sicherheit und DevSecOps\"],\"inLanguage\":\"de-DE\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/jfrog.com\/de\/blog\/cve-2025-29927-next-js-authorization-bypass\/\",\"url\":\"https:\/\/jfrog.com\/de\/blog\/cve-2025-29927-next-js-authorization-bypass\/\",\"name\":\"So umgeht CVE-2025-29927 die Autorisierung in Next.js\",\"isPartOf\":{\"@id\":\"https:\/\/jfrog.com\/de\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/jfrog.com\/de\/blog\/cve-2025-29927-next-js-authorization-bypass\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/jfrog.com\/de\/blog\/cve-2025-29927-next-js-authorization-bypass\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/jfrog.com\/wp-content\/uploads\/2025\/03\/Next.js_CVE-2025-29927_863x300.png\",\"datePublished\":\"2025-03-24T09:31:09+00:00\",\"dateModified\":\"2026-09-15T11:14:50+00:00\",\"description\":\"Sch\u00fctzen Sie Ihre Anwendungen vor CVE-2025-29927, einem Angriff mit geringer Komplexit\u00e4t, der Authentifizierungsmechanismen in Next.js umgehen und kritische Autorisierungs- und Validierungspr\u00fcfungen \u00fcberspringen kann.\",\"breadcrumb\":{\"@id\":\"https:\/\/jfrog.com\/de\/blog\/cve-2025-29927-next-js-authorization-bypass\/#breadcrumb\"},\"inLanguage\":\"de-DE\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/jfrog.com\/de\/blog\/cve-2025-29927-next-js-authorization-bypass\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de-DE\",\"@id\":\"https:\/\/jfrog.com\/de\/blog\/cve-2025-29927-next-js-authorization-bypass\/#primaryimage\",\"url\":\"https:\/\/jfrog.com\/wp-content\/uploads\/2025\/03\/Next.js_CVE-2025-29927_863x300.png\",\"contentUrl\":\"https:\/\/jfrog.com\/wp-content\/uploads\/2025\/03\/Next.js_CVE-2025-29927_863x300.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/jfrog.com\/de\/blog\/cve-2025-29927-next-js-authorization-bypass\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/jfrog.com\/de\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Die CVE-2025-29927-Sicherheitsl\u00fccke zur Umgehung der Autorisierung in Next.js: Alles, was Sie dar\u00fcber wissen m\u00fcssen\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/jfrog.com\/de\/#website\",\"url\":\"https:\/\/jfrog.com\/de\/\",\"name\":\"JFrog\",\"description\":\"Deliver Trusted Software Releases at Speed and Scale\",\"publisher\":{\"@id\":\"https:\/\/jfrog.com\/de\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/jfrog.com\/de\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"de-DE\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/jfrog.com\/de\/#organization\",\"name\":\"JFrog\",\"url\":\"https:\/\/jfrog.com\/de\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de-DE\",\"@id\":\"https:\/\/jfrog.com\/de\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2025\/05\/27095207\/Logo.svg\",\"contentUrl\":\"https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2025\/05\/27095207\/Logo.svg\",\"width\":74,\"height\":73,\"caption\":\"JFrog\"},\"image\":{\"@id\":\"https:\/\/jfrog.com\/de\/#\/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\":\"https:\/\/jfrog.com\/de\/#\/schema\/person\/c84b32acf61c0b7c85a306cb03697b28\",\"name\":\"drewt\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de-DE\",\"@id\":\"https:\/\/jfrog.com\/de\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/a9566b6b2e5e2e34deeb94dfeae460f70d7c7d08606c66ebb53f94a07386253c?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/a9566b6b2e5e2e34deeb94dfeae460f70d7c7d08606c66ebb53f94a07386253c?s=96&d=mm&r=g\",\"caption\":\"drewt\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"So umgeht CVE-2025-29927 die Autorisierung in Next.js","description":"Sch\u00fctzen Sie Ihre Anwendungen vor CVE-2025-29927, einem Angriff mit geringer Komplexit\u00e4t, der Authentifizierungsmechanismen in Next.js umgehen und kritische Autorisierungs- und Validierungspr\u00fcfungen \u00fcberspringen kann.","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\/de\/wp-json\/wp\/v2\/posts\/174413","og_locale":"de_DE","og_type":"article","og_title":"Die CVE-2025-29927-Sicherheitsl\u00fccke zur Umgehung der Autorisierung in Next.js: Alles, was Sie dar\u00fcber wissen m\u00fcssen","og_description":"Sch\u00fctzen Sie Ihre Anwendungen vor CVE-2025-29927, einem Angriff mit geringer Komplexit\u00e4t, der Authentifizierungsmechanismen in Next.js umgehen und kritische Autorisierungs- und Validierungspr\u00fcfungen \u00fcberspringen kann.","og_url":"https:\/\/jfrog.com\/de\/blog\/cve-2025-29927-next-js-authorization-bypass\/","og_site_name":"JFrog","article_publisher":"https:\/\/www.facebook.com\/artifrog","article_published_time":"2025-03-24T09:31:09+00:00","article_modified_time":"2026-09-15T11:14:50+00:00","og_image":[{"url":"https:\/\/media.jfrog.com\/wp-content\/uploads\/2025\/03\/23164150\/Next.js_CVE-2025-29927_1200x628.png"}],"author":"drewt","twitter_card":"summary_large_image","twitter_creator":"@jfrog","twitter_site":"@jfrog","twitter_misc":{"Written by":"drewt","Est. reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/jfrog.com\/de\/blog\/cve-2025-29927-next-js-authorization-bypass\/#article","isPartOf":{"@id":"https:\/\/jfrog.com\/de\/blog\/cve-2025-29927-next-js-authorization-bypass\/"},"author":{"name":"drewt","@id":"https:\/\/jfrog.com\/de\/#\/schema\/person\/c84b32acf61c0b7c85a306cb03697b28"},"headline":"Die CVE-2025-29927-Sicherheitsl\u00fccke zur Umgehung der Autorisierung in Next.js: Alles, was Sie dar\u00fcber wissen m\u00fcssen","datePublished":"2025-03-24T09:31:09+00:00","dateModified":"2026-09-15T11:14:50+00:00","mainEntityOfPage":{"@id":"https:\/\/jfrog.com\/de\/blog\/cve-2025-29927-next-js-authorization-bypass\/"},"wordCount":1475,"publisher":{"@id":"https:\/\/jfrog.com\/de\/#organization"},"image":{"@id":"https:\/\/jfrog.com\/de\/blog\/cve-2025-29927-next-js-authorization-bypass\/#primaryimage"},"thumbnailUrl":"https:\/\/jfrog.com\/wp-content\/uploads\/2025\/03\/Next.js_CVE-2025-29927_863x300.png","keywords":["next.js","cve","vulnerabilities","cve-analysis","security-research"],"articleSection":["Community","Sicherheit und DevSecOps"],"inLanguage":"de-DE"},{"@type":"WebPage","@id":"https:\/\/jfrog.com\/de\/blog\/cve-2025-29927-next-js-authorization-bypass\/","url":"https:\/\/jfrog.com\/de\/blog\/cve-2025-29927-next-js-authorization-bypass\/","name":"So umgeht CVE-2025-29927 die Autorisierung in Next.js","isPartOf":{"@id":"https:\/\/jfrog.com\/de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/jfrog.com\/de\/blog\/cve-2025-29927-next-js-authorization-bypass\/#primaryimage"},"image":{"@id":"https:\/\/jfrog.com\/de\/blog\/cve-2025-29927-next-js-authorization-bypass\/#primaryimage"},"thumbnailUrl":"https:\/\/jfrog.com\/wp-content\/uploads\/2025\/03\/Next.js_CVE-2025-29927_863x300.png","datePublished":"2025-03-24T09:31:09+00:00","dateModified":"2026-09-15T11:14:50+00:00","description":"Sch\u00fctzen Sie Ihre Anwendungen vor CVE-2025-29927, einem Angriff mit geringer Komplexit\u00e4t, der Authentifizierungsmechanismen in Next.js umgehen und kritische Autorisierungs- und Validierungspr\u00fcfungen \u00fcberspringen kann.","breadcrumb":{"@id":"https:\/\/jfrog.com\/de\/blog\/cve-2025-29927-next-js-authorization-bypass\/#breadcrumb"},"inLanguage":"de-DE","potentialAction":[{"@type":"ReadAction","target":["https:\/\/jfrog.com\/de\/blog\/cve-2025-29927-next-js-authorization-bypass\/"]}]},{"@type":"ImageObject","inLanguage":"de-DE","@id":"https:\/\/jfrog.com\/de\/blog\/cve-2025-29927-next-js-authorization-bypass\/#primaryimage","url":"https:\/\/jfrog.com\/wp-content\/uploads\/2025\/03\/Next.js_CVE-2025-29927_863x300.png","contentUrl":"https:\/\/jfrog.com\/wp-content\/uploads\/2025\/03\/Next.js_CVE-2025-29927_863x300.png"},{"@type":"BreadcrumbList","@id":"https:\/\/jfrog.com\/de\/blog\/cve-2025-29927-next-js-authorization-bypass\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/jfrog.com\/de\/"},{"@type":"ListItem","position":2,"name":"Die CVE-2025-29927-Sicherheitsl\u00fccke zur Umgehung der Autorisierung in Next.js: Alles, was Sie dar\u00fcber wissen m\u00fcssen"}]},{"@type":"WebSite","@id":"https:\/\/jfrog.com\/de\/#website","url":"https:\/\/jfrog.com\/de\/","name":"JFrog","description":"Deliver Trusted Software Releases at Speed and Scale","publisher":{"@id":"https:\/\/jfrog.com\/de\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/jfrog.com\/de\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"de-DE"},{"@type":"Organization","@id":"https:\/\/jfrog.com\/de\/#organization","name":"JFrog","url":"https:\/\/jfrog.com\/de\/","logo":{"@type":"ImageObject","inLanguage":"de-DE","@id":"https:\/\/jfrog.com\/de\/#\/schema\/logo\/image\/","url":"https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2025\/05\/27095207\/Logo.svg","contentUrl":"https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2025\/05\/27095207\/Logo.svg","width":74,"height":73,"caption":"JFrog"},"image":{"@id":"https:\/\/jfrog.com\/de\/#\/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":"https:\/\/jfrog.com\/de\/#\/schema\/person\/c84b32acf61c0b7c85a306cb03697b28","name":"drewt","image":{"@type":"ImageObject","inLanguage":"de-DE","@id":"https:\/\/jfrog.com\/de\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/a9566b6b2e5e2e34deeb94dfeae460f70d7c7d08606c66ebb53f94a07386253c?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a9566b6b2e5e2e34deeb94dfeae460f70d7c7d08606c66ebb53f94a07386253c?s=96&d=mm&r=g","caption":"drewt"}}]}},"_links":{"self":[{"href":"https:\/\/jfrog.com\/de\/wp-json\/wp\/v2\/posts\/174413","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jfrog.com\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jfrog.com\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jfrog.com\/de\/wp-json\/wp\/v2\/users\/590"}],"replies":[{"embeddable":true,"href":"https:\/\/jfrog.com\/de\/wp-json\/wp\/v2\/comments?post=174413"}],"version-history":[{"count":3,"href":"https:\/\/jfrog.com\/de\/wp-json\/wp\/v2\/posts\/174413\/revisions"}],"predecessor-version":[{"id":174485,"href":"https:\/\/jfrog.com\/de\/wp-json\/wp\/v2\/posts\/174413\/revisions\/174485"}],"wp:attachment":[{"href":"https:\/\/jfrog.com\/de\/wp-json\/wp\/v2\/media?parent=174413"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jfrog.com\/de\/wp-json\/wp\/v2\/categories?post=174413"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jfrog.com\/de\/wp-json\/wp\/v2\/tags?post=174413"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}