
Scanner passivo de vulnerabilidades para CVE-2025-55182 e CVE-2025-66478, que detecta RCE não autenticado em React Server Components por meio de fingerprinting de framework, análise de versão e sondagem de endpoints RSC.
Ferramenta de Detecção de Execução Remota de Código no Protocolo Flight do React Server Components
Este scanner identifica sistemas potencialmente vulneráveis ao CVE-2025-55182 (React) e ao CVE-2025-66478 (Next.js), vulnerabilidades críticas de execução remota de código não autenticada no protocolo "Flight" do React Server Components (RSC).
Principais Fatores de Risco:
Uma vulnerabilidade crítica de desserialização insegura na implementação de Server Components do React. O protocolo "Flight" do RSC não valida adequadamente a estrutura e os tipos dos payloads recebidos, permitindo que atacantes injetem dados maliciosos que influenciam a execução no lado do servidor.
| Pacote | Versões Vulneráveis | Versões Corrigidas |
|---|---|---|
| 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
O ataque requer apenas uma solicitação HTTP especialmente elaborada para qualquer endpoint de Server Function. Nenhuma autenticação é necessária, e as configurações padrão são vulneráveis.
O scanner usa fingerprinting passivo e sondagem de protocolo para identificar sistemas potencialmente vulneráveis. Ele NÃO tenta explorar a vulnerabilidade.
┌─────────────────────────────────────────────────────────────────┐
│ 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 │
│ │
└─────────────────────────────────────────────────────────────────┘
| Indicador | Método de Detecção | Confiança |
|---|---|---|
X-Powered-By: Next.js | Inspeção do cabeçalho HTTP | Alta |
Tag de script __NEXT_DATA__ | Análise do código-fonte HTML | Alta |
Caminhos de assets /_next/ | Análise do código-fonte HTML | Média |
| Marcadores de hidratação do React | Análise do código-fonte HTML | Média |
O protocolo Flight usa um formato de transmissão específico:
0:["$","div",null,{"children":"Hello"}]
1:["$","$L1",null,{}]
2:{"name":"ServerComponent"}
O scanner procura por:
text/x-component{number}:{payload}$, $L, $F, $@, $undefinedProcura padrões de versão em:
/_next/static/chunks/)[email protected])requests# 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
| Opção | Descrição | Padrão |
|---|---|---|
-t, --target | URL de destino única | - |
-f, --file | Arquivo com lista de destinos | - |
-o, --output | Arquivo de saída JSON | - |
-v, --verbose | Mostrar evidências detalhadas | False |
--timeout | Tempo limite da solicitação (segundos) | 10 |
--threads | Threads simultâneas | 5 |
--verify-ssl | Verificar certificados SSL | False |
--user-agent | User-Agent personalizado | Mozilla/5.0... |
--no-banner | Suprimir banner | False |
Para uma análise mais aprofundada do protocolo:
python3 rsc_analyzer.py https://example.com 2>/dev/null
Ele fornece análise detalhada do protocolo Flight e enumeração de componentes.