
CVE-2025-55182 (React2Shell) Scanner
Um kit de ferramentas de avaliação de segurança desenvolvido pela Equipe de Pesquisa de Segurança Rapticore para detecção de vulnerabilidades em React Server Components (RSC), incluindo CVE-2025-55182 (React2Shell) - uma vulnerabilidade crítica de Execução Remota de Código.
Este kit fornece duas ferramentas especializadas:
| Ferramenta | Descrição |
|---|---|
ore_rsc.py | Scanner rápido de endpoints RSC para avaliações rápidas |
ore_react2shell.py | Suíte completa de avaliação com enumeração de subdomínios e geração de relatórios |
https://github.com/user-attachments/assets/5be7661b-515c-46b4-ade4-8e88fdff6528
Scanner detectando vulnerabilidades CVE-2025-55182 (React2Shell) em um aplicativo Next.js de teste.
CVE-2025-55182 (React2Shell) é uma vulnerabilidade crítica de RCE que afeta React Server Components:
| Pacotes Afetados | 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 |
Referência: GHSA-fv66-9v8q-g76r
ore_rsc.py)ore_react2shell.py)# Clone the repository
git clone https://github.com/rapticore/ore_react2shell_scanner.git
cd ore_react2shell_scanner
# Create virtual environment
python3 -m venv env
source env/bin/activate # On Windows: env\Scripts\activate
# Install dependencies
pip install aiohttp jinja2
# Optional: Install subfinder for subdomain enumeration
go install github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest
ore_rsc.py# Single domain scan
python ore_rsc.py example.com
# Multiple domains
python ore_rsc.py example.com api.example.com
# Scan from file
python ore_rsc.py -f subdomains.txt
# Deep scan with extended paths
python ore_rsc.py example.com --deep
# Active verification (sends PoC payload)
python ore_rsc.py example.com --verify
# Safe side-channel check (non-exploitative)
python ore_rsc.py example.com --safe-check
# JSON output
python ore_rsc.py example.com --format json -o results.json
ore_react2shell.py# Full assessment with subdomain enumeration
# Results saved to: results/example_com_{timestamp}/
python ore_react2shell.py --domain example.com
# Use existing subdomain list
python ore_react2shell.py --domain example.com -f subdomains.txt
# Multiple root domains
python ore_react2shell.py --domain example.com --domain example.org
# With active verification
python ore_react2shell.py --domain example.com --verify
# Safe side-channel check
python ore_react2shell.py --domain example.com --safe-check
# Skip subdomain enumeration
python ore_react2shell.py --domain example.com --skip-enum
# Custom output directory
python ore_react2shell.py --domain example.com -o ./reports
Os relatórios são organizados automaticamente por domínio e data/hora:
results/
└── example_com_20250106_143052/
├── rsc_assessment.html # Interactive HTML report
├── rsc_assessment.json # Machine-readable JSON
├── rsc_assessment.csv # Spreadsheet format
└── rsc_assessment_executive_summary.txt # Text summary
O scanner implementa uma lógica de verificação robusta para lidar com servidores instáveis:
Os scanners detectam endpoints RSC por meio de:
text/x-component, text/x-rsc, text/x-flightx-nextjs-cache, rsc, next-action, etc.0:, 1:), referências React ($)$ACTION_ID, atributos formAction| Nível de Risco | Critérios |
|---|---|
| CRITICAL | Exploração confirmada via --verify |
| HIGH | Provavelmente vulnerável via --safe-check |
Se endpoints vulneráveis forem detectados:
react-server-dom-* para as versões corrigidas (19.0.1, 19.1.2, 19.2.1+)Esta ferramenta é apenas para avaliações de segurança autorizadas. Utilize apenas em domínios que você possui ou para os quais tenha autorização explícita por escrito para testar.
A Equipe de Pesquisa de Segurança Rapticore não assume responsabilidade por uso indevido.
Desenvolvido pela Equipe de Pesquisa de Segurança Rapticore
| 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+ |
| Opção | Descrição |
|---|
domains | Domínio(s) a escanear |
-f, --file | Arquivo contendo domínios (um por linha) |
-c, --concurrency | Requisições concorrentes (padrão: 20) |
-t, --timeout | Tempo limite da requisição em segundos (padrão: 25) |
--deep | Varredura profunda com caminhos estendidos |
--verify | Verificação ativa - envia payload de PoC de RCE |
--safe-check | Verificação segura de canal lateral |
--waf-bypass | Modo de bypass de WAF com dados de lixo |
-o, --output | Caminho do arquivo de saída |
--format | Formato de saída: console, json, csv |
| Opção | Descrição |
|---|
-d, --domain | Domínio(s) alvo para avaliar (obrigatório) |
-f, --file | Arquivo contendo subdomínios |
--skip-enum | Pular enumeração de subdomínios |
-c, --concurrency | Requisições concorrentes (padrão: 30) |
--deep | Varredura profunda com caminhos estendidos |
--verify | Modo de verificação ativa |
--safe-check | Verificação segura de canal lateral |
-o, --output | Diretório base de saída (padrão: results) |
--format | Formato de saída: html, json, csv, txt, all |
| MEDIUM | Endpoint RSC com server actions |
| LOW | Endpoint RSC detectado |
| INFO | Indicadores RSC presentes |