CVE-2025-29927: Autorisierungsumgehung in Next.js

Matthew Mathur

Senior Security Researcher, Fastly

Fastly Security Research Team

Fastly Security Research Team, Fastly

Was Sie unbedingt wissen sollten

  • Am 21. März 2025 veröffentlichte Vercel Sicherheits- und Warnhinweise für CVE-2025-29927 in Next.js

  • CVE-2025-29927 ist eine Schwachstelle zur Umgehung der Autorisierung in der Next.js-Middleware in Versionen

  • Die Sicherheitslücke betrifft die Versionen:

    • 15.x vor 15.2.3

    • 14.x vor 14.2.25

    • 13.x vor 13.5.9

    • 12.x vor 12.3.5

    • 11.x, alle Versionen

Fastly NGWAF-Kunden können sich vor dieser Sicherheitslücke schützen, indem sie die Regelvorlage für CVE-2025-29927 aktivieren.

Details zur CVE-2025-29927

Next.js ist ein beliebtes React-Framework zum Erstellen von Full-Stack-Webanwendungen. In Next.js ist Middleware eine Funktion, die es Ihnen ermöglicht, Code auszuführen, bevor eine Anforderung von einer Route verarbeitet wird. Sie ermöglicht eine dynamische Bearbeitung von Anfragen, wie z. B. Autorisierung, Weiterleitungen und Antwortänderungen, bevor eine API-Route oder -Seite erreicht wird. Diese Schwachstelle betrifft die Art und Weise, wie Next.js entscheidet, Middleware auf eine bestimmte Anfrage anzuwenden. Wenn eine Anforderung verarbeitet wird, ruft Next.js den Wert aus dem x-middleware-subrequest -Header ab und verwendet ihn, um zu bestimmen, ob Middleware angewendet werden soll. Wenn der Wert des Header einen bestimmten Wert enthält (der für jede anfällige Version unterschiedlich ist), überspringt Next.js die Anwendung von Middleware und leitet die Anforderung weiter.

Kurz gesagt, wenn eine Anforderung den Header x-middleware-subrequest und einen (versionsspezifischen) Wert enthält, wird die Middleware von Next.js umgangen.

Frühere Versionen von Next.js suchen nach dem Wert der Variable middlewareInfo.name, der im Wert des Headers vorhanden sein muss. Dies ist einfach der Pfad, an dem sich die Middleware befindet, kann jedoch je nach Version und Installation unterschiedlich sein.

So sieht es je nach Version aus:

  • Vor Version 12.2

    • Die Middleware befindet sich standardmäßig unter pages/_middleware.ts, sodass die Payload pages/_middleware ist. Sie muss sich in einem pages/-Verzeichnis in diesen Versionen befinden

    • Es können jedoch auch verschachtelte Verzeichnisse mit Middleware vorhanden sein, sodass es je nach Anwendungsconfiguration etwas wie pages/example/_middleware sein könnte.

  • Nach Version 12,2, aber vor Version 15.x

    • Die Middleware befindet sich nicht mehr im Verzeichnis pages, und das Unterstrich-Präfix wurde entfernt. Next.js unterstützt jedoch auch ein /src -Verzeichnis, in dem sich die Middleware-Datei befinden könnte

    • Die Payload enthält entweder Middleware oder src/middleware

  • Version 15.x

    • Next.js überprüft nun, ob middlewareInfo.name mindestens 5 Mal vorhanden ist, um die Middleware zu umgehen, und auch das /src-Verzeichnis bleibt eine Möglichkeit.

    • Die Payload enthält entweder middleware:middleware:middleware:middleware:middleware oder src/middleware:src/middleware:src/middleware:src/middleware:src/middleware:

Für weitere Details zu den Schwachstellen und deren Entdeckung erläutern Rachid und Yasser diese hier in ihrem Post. Neben der Autorisierungsumgehung eigen sie auch, wie die Sicherheitslücke ausgenutzt werden kann, um einen Denial of Service durch Cache-Poisoning zu verursachen.

Umsetzbare Empfehlungen

Fastly empfiehlt, wenn möglich, auf die folgenden gepatchten Versionen von Next.js zu aktualisieren, die diese Sicherheitslücke beheben:

  • Für 15.x, behoben in 15.2.3

  • Für 14.x behoben in 14.2.25.

  • Für 13.x behoben in 13.5.9

  • Für 12.x behoben in 12.3.5

  • Für 11.x ist kein Patch verfügbar

Für Fastly NGWAF-Kunden

Wenn Sie Ihre Version von Next.js nicht patchen können, Zeit benötigen, um den Patch zu installieren, oder nach zusätzlichen Schutzmaßnahmen für diese Schwachstelle suchen, können Sie die Templated Rule für CVE-2025-29927 aktivieren. Wenn Sie zusätzliche Hilfe beim Anwenden eines virtuellen Patches benötigen, wenden Sie sich bitte an unser Sicherheits-Supportteam.

Quellenangaben