
Absichtlich verwundbares Next.js RSC Docker-Labor für lokale Tests von CVE-2025-55182 (React2Shell)
Lokales Docker-Labor für autorisierte Sicherheitsforschung: React Server Components / Next.js App Router mit einem Stack im betroffenen Bereich von CVE-2025-55182 (React2Shell).
Nur auf Ihrem eigenen Rechner verwenden. Setzen Sie diesen Container nicht dem Internet aus.
| Komponente | Version | Hinweis |
|---|---|---|
| Next.js | 15.1.0 | Vor-Patch; npm warnt vor bekannten Problemen |
| React / react-dom | 19.2.0 | In der betroffenen 19.x-Linie für dieses CVE |
| RSC-Pipeline | In Next gebündelt | Deserialisierung wird über Nexts kompilierte react-server-dom-* durchgeführt |
Die App ist eine minimale App Router-Seite mit einer Server Action, sodass POST / mit einem Next-Action-Header wie ein echtes Ziel verhält.
git clone https://github.com/l0lsec/cve-2025-55182-lab.git
cd cve-2025-55182-lab
# Build und Start im Hintergrund
docker compose up --build -d
Öffnen Sie http://localhost:3000 — Sie sollten „RSC lab (intentionally vulnerable)“ und ein kleines Formular sehen.
curl -sS -o /dev/null -w "%{http_code}\n" http://127.0.0.1:3000/
# Erwartet: 200
docker compose logs -f
docker compose down
http://localhost:3000 (oder tunneln Sie durch Burp).POST / mit Content-Type: multipart/form-data und Ihrem Flight-Protokoll-Exploit-Body (Multipart-Felder 0, 1, 2 wie in öffentlichen Write-ups / Ihren Vorlagen).Next-Action-Header
Next-Action-Wert aus dieser Anfrage zu kopieren, oderBeispiel für die Header-Form:
Next-Action: <action-id-from-intercepted-request>
Wenn ein generischer Platzhalter nicht funktioniert, bevorzugen Sie immer die live-ID aus dem Proxy-Verlauf nach einer legitimen Übermittlung.
Bereit zum Einfügen POST / Multipart-Vorlagen befinden sich in burp-payloads/ (z. B. id, whoami, zeitbasierte sleep, OOB-Platzhalter). Siehe burp-payloads/README.md für einen Dateiindex. Ersetzen Sie YOUR-COLLABORATOR-HOST in OOB-Vorlagen vor dem Senden.
.
├── Dockerfile # Multi-Stage-Build, Next standalone, Port 3000
├── docker-compose.yml # Bildet Host 3000 → Container 3000 ab
├── burp-payloads/ # Rohdaten-*.http für Burp Repeater + Index-README
├── app/
│ ├── layout.tsx
│ └── page.tsx # Server Action + Labor-UI
├── public/
├── package.json
├── package-lock.json
└── next.config.ts # Ausgabe: "standalone"
npm install
npm run dev
# http://localhost:3000
Für die CVE-Reproduktion bevorzugen Sie das Docker-Image, damit der Stack mit den festgelegten verwundbaren Abhängigkeiten übereinstimmt.
Nur für Bildungs- / Laborzwecke. Sie sind dafür verantwortlich, die Gesetze und Richtlinien an Ihrem Standort einzuhalten. Keine Gewährleistung.