
Scanner passivo di vulnerabilità per CVE-2025-55182 e CVE-2025-66478, che rileva RCE non autenticato in React Server Components tramite fingerprinting del framework, analisi delle versioni e probing degli endpoint RSC.
Strumento di Rilevamento di Esecuzione di Codice Remoto nel Protocollo Flight di React Server Components
Questo scanner identifica i sistemi potenzialmente vulnerabili a CVE-2025-55182 (React) e CVE-2025-66478 (Next.js), vulnerabilità critiche di esecuzione di codice remoto non autenticate nel protocollo "Flight" di React Server Components (RSC).
Fattori di Rischio Chiave:
Una vulnerabilità critica di deserializzazione insicura nell'implementazione dei Server Components di React. Il protocollo RSC "Flight" non convalida correttamente la struttura e i tipi dei payload in arrivo, consentendo agli aggressori di iniettare dati malevoli che influenzano l'esecuzione lato server.
| Package | Versioni Vulnerabili | Versioni Corrette |
|---|---|---|
| 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 |
Attaccante → Richiesta HTTP POST appositamente costruita → Endpoint RSC → Deserializzazione → RCE
L'attacco richiede solo una richiesta HTTP appositamente costruita verso qualsiasi endpoint di Server Function. Non è necessaria autenticazione e le configurazioni predefinite sono vulnerabili.
Lo scanner utilizza fingerprinting passivo e sondaggio del protocollo per identificare i sistemi potenzialmente vulnerabili. Non tenta lo sfruttamento.
┌─────────────────────────────────────────────────────────────────┐
│ 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 │
│ │
└─────────────────────────────────────────────────────────────────┘
| Indicatore | Metodo di Rilevamento | Confidenza |
|---|---|---|
X-Powered-By: Next.js | Ispezione dell'intestazione HTTP | Alta |
__NEXT_DATA__ script tag | Analisi del sorgente HTML | Alta |
/_next/ percorsi asset | Analisi del sorgente HTML | Media |
| Marcatori di hydration di React | Analisi del sorgente HTML | Media |
Il protocollo Flight utilizza un formato wire specifico:
0:["$","div",null,{"children":"Hello"}]
1:["$","$L1",null,{}]
2:{"name":"ServerComponent"}
Lo scanner cerca:
text/x-component Content-Type{numero}:{payload}$, $L, $F, $@, $undefinedCerca pattern di versione in:
/_next/static/chunks/)[email protected])requests# Clona o scarica i file dello scanner
# Installa le dipendenze
pip install -r requirements.txt
# Verifica l'installazione
python3 cve-2025-55182-scanner.py --help
# Target singolo
python3 cve-2025-55182-scanner.py -t https://example.com
# Con output verboso
python3 cve-2025-55182-scanner.py -t https://example.com -v
# Crea file dei target (un URL per riga)
echo "https://app1.example.com" > targets.txt
echo "https://app2.example.com" >> targets.txt
# Scansiona tutti i target
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
| Opzione | Descrizione | Predefinito |
|---|---|---|
-t, --target | URL del target singolo | - |
-f, --file | File con elenco dei target | - |
-o, --output | File di output JSON | - |
-v, --verbose | Mostra evidenze dettagliate | False |
--timeout | Timeout richiesta (secondi) | 10 |
--threads | Thread concorrenti | 5 |
--verify-ssl | Verifica certificati SSL | False |
--user-agent | User-Agent personalizzato | Mozilla/5.0... |
--no-banner | Sopprimi banner | False |
Per un'analisi più approfondita del protocollo:
python3 rsc_analyzer.py https://example.com 2>/dev/null
Questo fornisce un'analisi dettagliata del protocollo Flight e l'enumerazione dei componenti.