
⚠️ WARNUNG: Diese Anwendung ist absichtlich verwundbar und ausschließlich für Bildungs- und Sicherheitsforschungszwecke gedacht. NICHT in Produktion bereitstellen oder dem Internet aussetzen.
Dies ist eine verwundbare Next.js-Anwendung, die CVE-2025-55182 demonstriert, eine kritische Remote-Codeausführungs-Schwachstelle (Remote Code Execution) in React Server Components. Die Anwendung wurde entwickelt, um wie ein professionelles Cloud-Hosting-Dashboard auszusehen, ist jedoch absichtlich verwundbar für Sicherheitstests und Bildungszwecke.
CVE-Details:
curl_id.sh zum Testen der Schwachstellenpm install --legacy-peer-deps
npm run dev
Die Anwendung ist unter http://localhost:3000 verfügbar.
Das Repository enthält curl_id.sh, ein Kommandozeilen-Tool, das auf der Nuclei-Vorlage zur Ausnutzung von CVE-2025-55182 basiert.
Verwendung:
# Execute id command (default)
./curl_id.sh -d localhost:3000 -c id
# Execute custom commands
./curl_id.sh -d localhost:3000 -c "whoami"
./curl_id.sh -d localhost:3000 -c "uname -a"
./curl_id.sh -d localhost:3000 -c "ls -la /tmp"
# Test remote domains (if vulnerable)
./curl_id.sh -d vulnapp.com -c id
Optionen:
-d, --domain: Ziel-Domain/URL (Standard: http://localhost:3000)-c, --command: Auszuführender Befehl (Standard: id)git clone https://github.com/assetnote/react2shell-scanner.git
cd react2shell-scanner
pip install -r requirements.txt
python3 scanner.py -u http://localhost:3000
python3 scanner.py -u http://localhost:3000 --safe-check
Die Schwachstelle kann ausgenutzt werden, indem eine manipulierte Multipart-POST-Anfrage an den Server gesendet wird mit:
Next-Action: x-HeaderX-Nextjs-Request-Id-HeaderX-Nextjs-Html-Request-Id-HeaderDie genaue Payload-Struktur finden Sie im react2shell-scanner-Repository.
Die Schwachstelle liegt im Deserialisierungsmechanismus von React Server Components. Wenn Next.js Server Actions verarbeitet, deserialisiert es die Anfrage-Payload. Die verwundbaren Versionen von React (19.0.0–19.2.0) validieren oder bereinigen die deserialisierten Daten nicht ordnungsgemäß, sodass Angreifer Folgendes tun können:
process.mainModule.require('child_process').execSync()X-Action-Redirect-Antwort-Header abrufenDer Exploit nutzt einen Prototype-Pollution-Angriff im JSON-Deserialisierungsprozess. Die Payload-Struktur umfasst:
then-Eigenschaft, die die Prototypenkette verschmutzt_response-Objekt mit einem _prefix-Feld, das JavaScript-Code enthältexecSync() ausgeführt und leitet die Ausgabe an den Antwort-Header umSo beheben Sie diese Schwachstelle:
npm install react@latest react-dom@latest
npm install next@latest
npm audit fix
vuln-app-CVE-2025-55182/
├── app/
│ ├── actions.ts # Vulnerable server action
│ ├── layout.tsx # Root layout
│ └── page.tsx # Main dashboard page
├── node_modules/ # Dependencies
├── curl_id.sh # Exploit script for testing
├── package.json # Project dependencies (vulnerable versions)
├── tsconfig.json # TypeScript configuration
├── next.config.js # Next.js configuration
├── .gitignore # Git ignore rules
└── README.md # This file
Diese Anwendung wurde ausschließlich für Sicherheitsforschung und Bildungszwecke erstellt.
Die Autoren und Mitwirkenden sind nicht verantwortlich für jeglichen Missbrauch dieses Codes. Unautorisierter Zugriff auf Computersysteme ist illegal und kann zu strafrechtlicher Verfolgung führen.
Dies ist ein Bildungs-Repository. Beiträge, die die Dokumentation verbessern, bessere Beispiele hinzufügen oder den Bildungswert erhöhen, sind willkommen.
Dieses Projekt wird zu Bildungszwecken bereitgestellt. Verwendung auf eigene Gefahr.
Denken Sie daran: Dies ist eine verwundbare Anwendung. Verwenden Sie sie verantwortungsvoll und nur in kontrollierten Umgebungen für Sicherheitsforschung und Bildung.