
Sicherheitsforschungslabor für CVE-2025-55183 und CVE-2025-55184 in React Server Components
Eine umfassende Sicherheitstestumgebung für die Schwachstellen CVE-2025-55183 (Quellcode-Offenlegung) und CVE-2025-55184 (Denial of Service) in React Server Components.
NUR FÜR BILDUNGS- UND SICHERHEITSFORSCHUNGSZWECKE
Dieses Repository enthält absichtlich verwundbare Anwendungen und Exploit-Werkzeuge. Testen Sie ausschließlich Systeme, die Ihnen gehören oder für die Sie eine ausdrückliche schriftliche Genehmigung haben. Unautorisierte Tests sind illegal und unethisch.
Beide Schwachstellen betreffen React Server Components in den Versionen 19.0.0 bis 19.2.2 und wurden am 11. Dezember 2025 offengelegt.
| Eigenschaft | Wert |
|---|---|
| Schweregrad | Mittel (CVSS 5.3) |
| Typ | Informationsoffenlegung |
| Auswirkung | Offenlegung von Server-Quellcode |
| Authentifizierung | Keine erforderlich |
Angreifer können Server-Action-Argumente manipulieren, um serverseitigen Quellcode preiszugeben, indem sie .toString() auf Server-Funktionsobjekten aufrufen. Dies legt Folgendes offen:
| Eigenschaft | Wert |
|---|---|
| Schweregrad | Hoch (CVSS 7.5) |
| Typ | Denial of Service |
| Auswirkung | Vollständiger Dienstausfall |
| Authentifizierung | Keine erforderlich |
Speziell konstruierte Payloads erzeugen eine unendliche Promise-Rekursion, wodurch der Node.js-Server auf unbestimmte Zeit hängen bleibt. Dies führt zu:
| Aspekt | CVE-2025-55183 | CVE-2025-55184 |
|---|---|---|
| Schweregrad | Mittel | Hoch |
| Typ | Informationsoffenlegung | Denial of Service |
| Auswirkung | Quellcode-Leck | Serverabsturz |
| Erkennung | Antwort enthält Code | Server-Timeout/Hänger |
| Wiederherstellung | Sofort | Neustart erforderlich |
TL;DR: Die App IST verwundbar (React 19.0.0), aber moderne Schutzmechanismen können den tatsächlichen Absturz in dieser Demo-Umgebung verhindern.
CVE-2025-55184 ist eine ECHTE, KRITISCHE Schwachstelle, die React 19.0.0-19.2.2 in Produktionsumgebungen betrifft. Die erfolgreiche Demonstration des DoS-Absturzes in einer lokalen Demo kann jedoch aus folgenden Gründen eine Herausforderung sein:
Selbst wenn der Exploit die Demo nicht zum Absturz bringt, können Sie die Schwachstelle über folgende Methoden verifizieren:
cd vulnerable-app
npm list react react-dom
# Output shows:
[email protected] ← VULNERABLE VERSION
[email protected] ← VULNERABLE VERSION
Wenn Sie 19.0.0 bis 19.2.2 sehen, IST die Anwendung verwundbar.
cd scanner
python scan.py http://localhost:3000
Der Scanner prüft auf:
git clone https://github.com/StealthMoud/react-server-cve-lab.git
cd react-server-cve-lab
# Start the app (vulnerable to both CVEs)
docker-compose up --build -d
# App available at: http://localhost:3000
cd scanner
# Install dependencies
pip install -r requirements.txt
# Scan for both vulnerabilities
python scan.py http://localhost:3000
# Scan only CVE-2025-55183
python scan.py --cve 55183 http://localhost:3000
# Scan only CVE-2025-55184
python scan.py --cve 55184 http://localhost:3000
# Scan multiple targets
python scan.py --file targets.txt
react-server-cve-lab/
├── README.md # This file
├── DOCUMENTATION.md # Complete technical documentation
├── LICENSE
├── .gitignore
├── docker-compose.yml
│
├── vulnerable-app/ # Vulnerable to BOTH CVEs
│ ├── Dockerfile
│ ├── package.json
│ ├── next.config.js
│ └── app/
│ ├── layout.js
│ ├── page.js
│ └── actions.js # Vulnerable server actions
│
├── scanner/
│ ├── requirements.txt
│ ├── scan.py # Scanner for both CVEs
│ └── README.md
│
└── exploits/
├── exploit-55183.py # PoC for CVE-2025-55183
├── exploit-55184.py # PoC for CVE-2025-55184
└── README.md
Die Anwendung ist eine Next.js-App mit React 19.0.0 und Server Actions, die gegenüber beiden CVEs verwundbar ist.
# Using Docker Compose (recommended)
docker-compose up --build -d
# Check if running
curl http://localhost:3000
# View logs
docker-compose logs -f
# Stop the app
docker-compose down
cd vulnerable-app
npm install
npm run build
npm start
Der einheitliche Scanner erkennt sowohl CVE-2025-55183 als auch CVE-2025-55184.
cd scanner
# Scan for both CVEs
python scan.py http://localhost:3000
# Scan specific CVE only
python scan.py --cve 55183 http://localhost:3000
python scan.py --cve 55184 http://localhost:3000
# Verbose output
python scan.py --verbose http://localhost:3000
# Custom timeout
python scan.py --timeout 10 http://example.com
# Scan multiple URLs from file
python scan.py --file targets.txt
# Save results to JSON
python scan.py --output results.json http://localhost:3000
# Disable SSL verification
python scan.py --no-verify https://self-signed.example.com
# Scan all CVEs with verbose output and save results
python scan.py --verbose --output scan-results.json http://localhost:3000
╔═══════════════════════════════════════════════════════════╗
║ React Server Components Vulnerability Scanner ║
║ CVE-2025-55183 & CVE-2025-55184 ║
╚═══════════════════════════════════════════════════════════╝
[*] Testing http://localhost:3000
[CVE-2025-55183] Source Code Exposure
[!] VULNERABLE: Source code leaked
Exposed Functions: 3
Code Length: 1247 characters
Contains Secrets: ✓ (API keys found)
[CVE-2025-55184] Denial of Service
[!] VULNERABLE: DoS attack successful
Status Code: 404
Content-Type: text/plain
Markers Found: ✓
============================================================
SUMMARY
============================================================
Total tested: 1
CVE-2025-55183 vulnerable: 1
CVE-2025-55184 vulnerable: 1
Both CVEs vulnerable: 1
Not vulnerable: 0
Für eine umfassende technische Analyse beider Schwachstellen:
DOCUMENTATION.md – Vollständige technische Dokumentation, die Folgendes abdeckt:
Beide Schwachstellen sind in denselben Patch-Versionen behoben:
Aktualisieren Sie React auf eine gepatchte Version:
npm install [email protected] [email protected]
# or
npm install react@latest react-dom@latest
Aktualisieren Sie Next.js (falls zutreffend):
npm install next@latest
Überprüfen Sie die Behebung:
npm list react react-dom next
python scanner/scan.py http://localhost:3000
| Paket | Verwundbare Versionen | Gepatchte Versionen |
|---|---|---|
| React | 19.0.0 - 19.2.2 | 19.0.3+, 19.1.4+, 19.2.3+ |
| Next.js 15.1.x | < 15.1.4 | 15.1.4+ |
| Next.js 15.0.x | < 15.0.4 | 15.0.4+ |
| Next.js 14.x | < 14.2.24 | 14.2.24+ |
# Run scanner to confirm fixes
cd scanner
python scan.py http://your-patched-app.com
# Expected output:
# [+] CVE-2025-55183: NOT VULNERABLE
# [+] CVE-2025-55184: NOT VULNERABLE
Beiträge sind willkommen! Bereiche für Verbesserungen:
Zögern Sie nicht, einen Pull Request einzureichen.
Dieses Projekt ist unter der MIT-Lizenz lizenziert – siehe die Datei LICENSE für Details.
Wenn Sie dieses Repository für Ihre Sicherheitsforschung hilfreich finden, ziehen Sie bitte in Betracht, ihm einen Stern zu geben!