
Testen und Analysieren der CVE-2025-55182-Sicherheitslücke innerhalb von Next.js Server Actions
Projektstatus: Experimentell / Proof of Concept
Dieses Repository dient als kontrollierte Forschungsumgebung und Proof-of-Concept (PoC)-Framework zur Analyse von CVE-2025-55182. Es demonstriert eine Prototype Pollution-Schwachstelle im Kontext von Next.js Server Actions, die speziell unsichere rekursive Merge-Operationen angreift.
Die Kernschwachstelle liegt in einer benutzerdefinierten deepMerge-Hilfsfunktion, die innerhalb einer Next.js Server Action (syncConfiguration) implementiert ist. Die Funktion verfügt nicht über eine ausreichende Bereinigung für spezielle Objektschlüssel – insbesondere __proto__ und constructor. Diese Unzulänglichkeit ermöglicht es einem nicht authentifizierten Angreifer, beliebige Eigenschaften in das globale Object.prototype einzuschleusen.
In einer serverseitigen Node.js-Laufzeitumgebung kann eine erfolgreiche Prototype Pollution zu Folgendem führen:
isAdmin) oder Konfigurationseinstellungen global.toString oder valueOf.child_process oder Template-Engines) verknüpft werden, um eine beliebige Codeausführung zu erreichen.lab/next-app/: Eine verwundbare Next.js 15-Anwendung, die dazu entwickelt wurde, den Sicherheitsfehler zu simulieren.
src/app/actions.jsx: Der serverseitige Code, der die verwundbare deepMerge-Implementierung enthält.exploits/: Python-Automatisierungsskripte zum Testen und zur Ausnutzung.
rce.py: Ein Skript, das die Injektion bösartiger JSON-Payloads automatisiert, um die Serverzustandsverschmutzung zu demonstrieren.get-shell.py: Ein fortgeschrittenes PoC, das RSC Flight Protocol-Deserialisierungsvektoren untersucht.docs/PAYLOADS.md: Ein Referenzdokument, das verschiedene JSON-Payloads für manuelle Tests und Analysen enthält.Sie können das Labor mit Docker (empfohlen) oder lokal ausführen.
Stellen Sie sicher, dass Docker und Docker Compose installiert sind.
docker-compose up --build
Die Anwendung ist unter http://localhost:3000 erreichbar.
Erfordert Node.js 20+.
cd lab/next-app
npm install
npm run dev
Die Anwendung ist unter http://localhost:3000 erreichbar.
http://localhost:3000.docs/PAYLOADS.md (z. B. den Basic Payload).Die bereitgestellten Python-Skripte ermöglichen eine programmatische Überprüfung der Schwachstelle.
Voraussetzung: Ermitteln Sie die Next-Action-ID aus dem Netzwerk-Tab des Browsers (suchen Sie nach einem POST-Request-Header Next-Action) oder aus der Server-Terminalausgabe.
docker exec -it exploit-runner bash
export ACTION_ID="your_action_id_here"
python3 rce.py "id"
pip install -r exploits/requirements.txt
export ACTION_ID="your_action_id_here"
python3 exploits/rce.py "id"
Hinweis: Das rce.py-Skript ist so konfiguriert, dass es eine erfolgreiche Zustandsverschmutzung demonstriert. Die vollständige Shell-Ausführung hängt von spezifischen Umgebungs-Gadgets ab, die variieren können.
Dieses Projekt ist ausschließlich für Bildungszwecke und Sicherheitsforschung bestimmt.
Verwenden Sie den hier bereitgestellten Code oder die Techniken nicht auf Systemen, für die Sie keine ausdrückliche schriftliche Genehmigung haben. Die Autoren übernehmen keine Verantwortung für Missbrauch oder Schäden, die durch dieses Material verursacht werden.