
Proof-of-Concept-Exploit für CVE-2025-29927, der x-middleware-subrequest hinzufügt, um die Authentifizierungsprüfungen der Next.js-Middleware zu umgehen.
Dieses Repository enthält einen Proof of Concept für die Schwachstelle CVE-2025-29927 in Next.js, bei der der interne Header x-middleware-subrequest ausgenutzt werden kann, um Middleware-Prüfungen wie die Authentifizierung zu umgehen.
🧪 Dieses Projekt wurde mit Next.js v13.4.19 getestet.
git clone https://github.com/goncalocsousa1/CVE-2025-29927.git
cd CVE-2025-29927
npm install
npm run dev
http://localhost:3000
Die Anwendung demonstriert ein einfaches Authentifizierungssystem mit einer geschützten Route, die mithilfe der Schwachstelle CVE-2025-29927 umgangen werden kann. So funktioniert es:
Startseite (/)
auth-token)Geschützte Seite (/protected)
auth-token-Cookies überprüftMiddleware-Schutz
auth-token-Cookie hat/protected/*-Routen zuzugreifen, wird zur Startseite weitergeleitetDemonstration der Schwachstelle
x-middleware-subrequest-Header ausgenutzt werden kannauth-token-Cookie können Angreifer auf geschützte Routen zugreifenDiese Anwendung enthält eine geschützte Route unter /protected, die normalerweise eine Authentifizierung erfordert. Durch die Verwendung des Headers x-middleware-subrequest: middleware in einer Anfrage wie curl -H "x-middleware-subrequest: middleware" http://localhost:3000/protected kann die Authentifizierungsprüfung jedoch umgangen werden.
Du kannst dieses Verhalten auch mit Burp Suite reproduzieren, indem du die Anfrage abfängst und den Header manuell hinzufügst.
Um dies mit Burp Suite zu versuchen, öffne den Proxy-Tab und gehe zum Intercept-Untertab. Stelle sicher, dass Intercept is On ist, klicke dann auf Open Browser und navigiere zur geschützten Route: http://localhost:3000/protected

Burp Suite wird die Anfrage zur geschützten Route erfassen. Füge dort den folgenden Header hinzu: x-middleware-subrequest: middleware (im obigen Screenshot hervorgehoben). Leite die Anfrage schließlich weiter und greife auf die geschützte Route zu.

Aktualisiere auf eine der folgenden gepatchten Versionen: