Detecta CVE-2025-55182 RCE en React Server Components escaneando lockfiles de npm/pnpm/yarn, imágenes Docker, SBOMs y URLs en vivo. Incluye auto-corrección, salida SARIF e integraciones con CI/CD.
Escáner de seguridad para CVE-2025-55182 - una vulnerabilidad crítica (CVSS 10.0) de ejecución remota de código no autenticada en React Server Components.
⚠️ AVISO LEGAL
Este es un escáner de seguridad, NO una herramienta de explotación. Está diseñado para ayudar a desarrolladores y equipos de seguridad a identificar dependencias vulnerables en sus proyectos.
Este es un proyecto de código abierto impulsado por la comunidad, proporcionado "TAL CUAL", sin garantía de ningún tipo, expresa o implícita. Los autores y colaboradores no son responsables de ningún daño o incidente de seguridad derivado del uso de esta herramienta.
Úsalo bajo tu propio riesgo y responsabilidad. Verifica siempre los hallazgos manualmente y sigue las políticas de seguridad de tu organización. Si descubres algún problema, error o tienes sugerencias, por favor contribuye para ayudar a mejorar el proyecto para todos.
🤝 SE BUSCAN COLABORADORES
¡Este proyecto está buscando activamente probadores y colaboradores! Ya sea que quieras informar errores, sugerir funciones, mejorar la documentación o enviar código, todas las contribuciones son bienvenidas. Consulta nuestra Guía de Contribución para comenzar.
Este proyecto existe para ayudar a la comunidad a responder al CVE-2025-55182. Agradecemos y reconocemos a:
La forma más rápida de comprobar si tu proyecto es vulnerable:```bash npx react2shell-guard .
¡Eso es todo! Esto escaneará tu directorio actual y mostrará los resultados inmediatamente.
### 2. Escanear un proyecto específico```bash
npx react2shell-guard /path/to/your/project
¿Has encontrado vulnerabilidades? Corrígelas automáticamente:```bash
npx react2shell-guard fix --dry-run
npx react2shell-guard fix
npx react2shell-guard fix --install
### 4. Escanear URLs en vivo
Comprueba si una aplicación desplegada es vulnerable:```bash
npx react2shell-guard scan-url https://your-app.com
Confirma que tu corrección implementada está funcionando:```bash npx react2shell-guard verify-patch https://your-app.com
### 6. Escanear imágenes de contenedores
Comprueba si tus imágenes de Docker contienen paquetes vulnerables:```bash
npx react2shell-guard scan-image myapp:latest
Crea automáticamente un PR de GitHub para corregir vulnerabilidades:```bash npx react2shell-guard create-pr --dry-run # Preview npx react2shell-guard create-pr # Create PR
---
## ¿Qué es CVE-2025-55182?
El 29 de noviembre de 2025, el investigador de seguridad Lachlan Davidson descubrió y reveló de forma responsable una vulnerabilidad crítica en React Server Components. La falla radica en cómo React decodifica los payloads enviados a los endpoints de React Server Function, permitiendo a atacantes no autenticados lograr la ejecución remota de código en los servidores afectados sin ninguna interacción del usuario.
CVE-2025-55182 está clasificada con CVSS 10.0 (Crítico) y afecta a React Server Components (RSC) y a los frameworks que utilizan el protocolo "Flight" de RSC.
**Paquetes afectados:**
- `react-server-dom-webpack` 19.0.0, 19.1.0-19.1.1, 19.2.0
- `react-server-dom-parcel` (mismas versiones)
- `react-server-dom-turbopack` (mismas versiones)
- `next` 15.0.0-15.0.4, 15.1.0-15.1.8, 15.2.0-15.2.5, 15.3.0-15.3.5, 15.4.0-15.4.7, 15.5.0-15.5.6, 16.0.0-16.0.6
**Más información:**
- [React Security Advisory](https://react.dev/blog/2025/12/03/critical-security-vulnerability-in-react-server-components)
- [Wiz Research](https://www.wiz.io/blog/critical-vulnerability-in-react-cve-2025-55182)
---
## Instalación (Opcional)
Para un uso frecuente, instálelo globalmente:```bash
npm install -g react2shell-guard
Luego usa sin npx:```bash
react2shell-guard .
---
## Guía de uso
### Escaneo básico```bash
# Scan current directory
react2shell-guard .
# Scan specific directory
react2shell-guard /path/to/project
# Scan and ignore certain paths
react2shell-guard . --ignore-path "examples/**" "test/**"
react2shell-guard .
react2shell-guard . --json
react2shell-guard . --sarif
react2shell-guard . --html report.html
### Opciones de CLI
| Opción | Descripción |
|--------|-------------|
| `--json` | Mostrar resultados como JSON |
| `--sarif` | Mostrar resultados como SARIF 2.1.0 |
| `--html <file>` | Generar informe HTML independiente |
| `--no-exit-on-vuln` | No salir con código 1 cuando se encuentren vulnerabilidades |
| `--ignore-path <patterns>` | Rutas a ignorar (p. ej., `examples/**`) |
| `--debug` | Habilitar salida de depuración |
### Códigos de Salida
| Código | Significado |
|------|---------|
| `0` | No se encontraron vulnerabilidades |
| `1` | Vulnerabilidades detectadas |
| `2+` | Error fatal |
## Escaneo de URL en Vivo
Escanea endpoints en vivo para detectar si son vulnerables:```bash
# Scan a single URL
react2shell-guard scan-url https://example.com
# Batch scan from a file (one URL per line)
react2shell-guard scan-url urls.txt --list
# With options
react2shell-guard scan-url https://example.com --timeout 5000 --json
El escáner utiliza huellas digitales pasivas para detectar endpoints vulnerables de React Server Components sin explotar la vulnerabilidad:
Solicitud de prueba: Envía una solicitud POST manipulada que simula una llamada a Server Action de RSC con una carga útil mínima:
multipart/form-data con una estructura de datos similar a RSCNext-Action para activar el procesamiento de Server ActionAnálisis de la respuesta: Analiza la respuesta HTTP en busca de firmas de vulnerabilidad:
^[0-9]+:E{ - formato de error del protocolo RSC Flight"digest":"...RSC - digest de RSC en respuestas de errorReactServerComponentsError - nombres de clases de error de Reacttext/x-component.*error - tipo de contenido de error de componenteNo destructivo: Es puramente un mecanismo de detección: no ejecuta ninguna carga útil maliciosa ni explota la vulnerabilidad. La sonda utiliza datos benignos que provocan respuestas de error en servidores vulnerables, pero no causa ningún daño.
Nota: Una detección positiva significa que el servidor está ejecutando una versión vulnerable y devolvió una firma de error específica de RSC. NO significa que el servidor haya sido explotado.