
Passiver Schwachstellen-Scanner für CVE-2025-55182 und CVE-2025-66478, der nicht authentifizierte RCE in React Server Components durch Framework-Fingerprinting, Versionsanalyse und RSC-Endpunkt-Probing erkennt.
Erkennungstool für Remote-Codeausführung im React Server Components Flight Protocol
Dieser Scanner identifiziert Systeme, die möglicherweise anfällig für CVE-2025-55182 (React) und CVE-2025-66478 (Next.js) sind, kritische nicht authentifizierte Remote-Codeausführungsschwachstellen im React Server Components (RSC) „Flight“-Protokoll.
Wichtige Risikofaktoren:
Eine kritische unsichere Deserialisierungsschwachstelle in der Server Components-Implementierung von React. Das RSC „Flight“-Protokoll validiert die Struktur und Typen eingehender Payloads nicht ordnungsgemäß, sodass Angreifer schädliche Daten injizieren können, die die serverseitige Ausführung beeinflussen.
| Paket | Anfällige Versionen | Gepatchte Versionen |
|---|---|---|
| react-server-dom-webpack | 19.0.0, 19.1.0, 19.1.1, 19.2.0 | 19.0.1, 19.1.2, 19.2.1 |
| react-server-dom-parcel | 19.0.0, 19.1.0, 19.1.1, 19.2.0 | 19.0.1, 19.1.2, 19.2.1 |
| react-server-dom-turbopack | 19.0.0, 19.1.0, 19.1.1, 19.2.0 | 19.0.1, 19.1.2, 19.2.1 |
| Next.js | 14.3.0-canary.77+, 15.x, 16.0.0-16.0.6 | 15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7, 16.0.7 |
Attacker → Crafted HTTP POST → RSC Endpoint → Deserialization → RCE
Der Angriff erfordert lediglich eine speziell präparierte HTTP-POST-Anfrage an einen beliebigen Server-Function-Endpunkt. Es ist keine Authentifizierung erforderlich, und Standardkonfigurationen sind anfällig.
Der Scanner verwendet passives Fingerprinting und Protokollprüfung, um potenziell anfällige Systeme zu identifizieren. Er versucht NICHT, eine Ausnutzung durchzuführen.
┌─────────────────────────────────────────────────────────────────┐
│ DETECTION PIPELINE │
├─────────────────────────────────────────────────────────────────┤
│ │
│ 1. Framework Detection │
│ ├── HTTP Headers (X-Powered-By: Next.js) │
│ ├── Page Source (__NEXT_DATA__, react artifacts) │
│ └── Build Manifests │
│ │
│ 2. Version Fingerprinting │
│ ├── Embedded version strings in JS bundles │
│ ├── Package version patterns │
│ └── Build manifest analysis │
│ │
│ 3. RSC Endpoint Discovery │
│ ├── Send RSC headers (RSC: 1, Accept: text/x-component) │
│ ├── Analyze response Content-Type │
│ └── Detect Flight protocol markers in response │
│ │
│ 4. Server Actions Probing │
│ ├── POST request with minimal Flight payload │
│ ├── Check for deserialization processing │
│ └── Identify action endpoints │
│ │
│ 5. Vulnerability Assessment │
│ ├── Correlate version with known vulnerable ranges │
│ ├── Weight RSC endpoint presence │
│ └── Generate confidence-scored verdict │
│ │
└─────────────────────────────────────────────────────────────────┘
| Indikator | Erkennungsmethode | Vertrauensstufe |
|---|---|---|
X-Powered-By: Next.js | HTTP-Header-Inspektion | Hoch |
__NEXT_DATA__ Script-Tag | HTML-Quelltext-Parsing | Hoch |
/_next/ Asset-Pfade | HTML-Quelltext-Parsing | Mittel |
| React-Hydrierungsmarkierungen | HTML-Quelltext-Parsing | Mittel |
Das Flight-Protokoll verwendet ein spezifisches Drahtformat:
0:["$","div",null,{"children":"Hello"}]
1:["$","$L1",null,{}]
2:{"name":"ServerComponent"}
Der Scanner sucht nach:
text/x-component Content-Type{number}:{payload}$, $L, $F, $@, $undefinedSucht nach Versionierungsmustern in:
/_next/static/chunks/)[email protected])requests-Bibliothek# Clone or download the scanner files
# Install dependencies
pip install -r requirements.txt
# Verify installation
python3 cve-2025-55182-scanner.py --help
# Single target
python3 cve-2025-55182-scanner.py -t https://example.com
# With verbose output
python3 cve-2025-55182-scanner.py -t https://example.com -v
# Create targets file (one URL per line)
echo "https://app1.example.com" > targets.txt
echo "https://app2.example.com" >> targets.txt
# Scan all targets
python3 cve-2025-55182-scanner.py -f targets.txt -o results.json
python3 cve-2025-55182-scanner.py -t https://example.com \
--timeout 15 \
--threads 10 \
--user-agent "SecurityAudit/1.0" \
-v \
-o scan_results.json
| Option | Beschreibung | Standardwert |
|---|---|---|
-t, --target | Einzelne Ziel-URL | - |
-f, --file | Datei mit Zielliste | - |
-o, --output | JSON-Ausgabedatei | - |
-v, --verbose | Detailierte Beweise anzeigen | False |
--timeout | Anforderungszeitüberschreitung (Sekunden) | 10 |
--threads | Gleichzeitige Threads | 5 |
--verify-ssl | SSL-Zertifikate überprüfen | False |
--user-agent | Benutzerdefinierter User-Agent | Mozilla/5.0... |
--no-banner | Banner unterdrücken | False |
python3 rsc_analyzer.py https://example.com 2>/dev/null
Dies bietet eine detaillierte Flight-Protokoll-Analyse und Komponentenaufzählung.