
CVE-2025-55182 (React2Shell) Escáner
Un conjunto de herramientas de evaluación de seguridad desarrollado por el Equipo de Investigación de Seguridad de Rapticore para detectar vulnerabilidades en React Server Components (RSC), incluyendo CVE-2025-55182 (React2Shell), una vulnerabilidad crítica de Ejecución Remota de Código.
Este conjunto de herramientas proporciona dos herramientas especializadas:
| Herramienta | Descripción |
|---|---|
ore_rsc.py | Escáner rápido de endpoints RSC para evaluaciones rápidas |
ore_react2shell.py | Suite completa de evaluación con enumeración de subdominios y generación de informes |
https://github.com/user-attachments/assets/5be7661b-515c-46b4-ade4-8e88fdff6528
Escáner detectando vulnerabilidades CVE-2025-55182 (React2Shell) en una aplicación Next.js de prueba.
CVE-2025-55182 (React2Shell) es una vulnerabilidad crítica de RCE que afecta a React Server Components:
| Paquetes afectados | Versiones vulnerables | Versiones corregidas |
|---|---|---|
| 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+ |
Referencia: 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
Los informes se organizan automáticamente por dominio y marca de tiempo:
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
| Opción | Descripción |
|---|---|
domains | Dominio(s) a escanear |
-f, --file | Archivo que contiene dominios (uno por línea) |
-c, --concurrency | Solicitudes concurrentes (por defecto: 20) |
-t, --timeout | Tiempo de espera de solicitud en segundos (por defecto: 25) |
--deep | Escaneo profundo con rutas extendidas |
--verify | Verificación activa - envía payload PoC de RCE |
--safe-check | Verificación segura por canal lateral |
--waf-bypass | Modo de omisión de WAF con datos basura |
-o, --output | Ruta del archivo de salida |
--format | Formato de salida: console, json, csv |
| Opción | Descripción |
|---|---|
-d, --domain | Dominio(s) objetivo a evaluar (requerido) |
-f, --file | Archivo que contiene subdominios |
--skip-enum | Omitir enumeración de subdominios |
-c, --concurrency | Solicitudes concurrentes (por defecto: 30) |
--deep | Escaneo profundo con rutas extendidas |
--verify | Modo de verificación activa |
--safe-check | Verificación segura por canal lateral |
-o, --output | Directorio base de salida (por defecto: results) |
--format | Formato de salida: html, json, csv, txt, all |
El escáner implementa una lógica de verificación robusta para manejar servidores inestables:
Los escáneres detectan endpoints RSC mediante:
text/x-component, text/x-rsc, text/x-flightx-nextjs-cache, rsc, next-action, etc.0:, 1:), referencias React ($)$ACTION_ID, atributos formAction| Nivel de riesgo | Criterio |
|---|---|
| CRÍTICO | Explotación confirmada mediante --verify |
| ALTO | Probablemente vulnerable mediante --safe-check |
| MEDIO | Endpoint RSC con server actions |
| BAJO | Endpoint RSC detectado |
| INFO | Indicadores RSC presentes |
Si se detectan endpoints vulnerables:
react-server-dom-* a las versiones corregidas (19.0.1, 19.1.2, 19.2.1+)Esta herramienta es solo para evaluaciones de seguridad autorizadas. Úsela únicamente en dominios que posea o para los que tenga autorización escrita explícita para realizar pruebas.
El Equipo de Investigación de Seguridad de Rapticore no asume ninguna responsabilidad por el uso indebido.