
Detecta la vulnerabilidad RCE CVE-2025-55182 (React2Shell) en React Server Components. Escáner rápido y preciso con cero falsos positivos.
RCE con CVSS 10.0 en React Server Components. ¿Es vulnerable tu aplicación React 19?
Escáner rápido y preciso para CVE-2025-55182 (React2Shell), una vulnerabilidad crítica de ejecución remota de código explotada activamente. Cero falsos positivos con detección inteligente de Server Components.
React2Shell es una vulnerabilidad de severidad máxima (CVSS 10.0) en React Server Components que permite la ejecución remota de código sin autenticación. Los atacantes pueden explotarla mediante solicitudes HTTP especialmente manipuladas dirigidas a endpoints de Server Functions.
Datos clave:
⚠️ Nota crítica: Solo React 19.x es vulnerable. React 18.x y versiones anteriores NO están afectadas.
# Option A: Node.js scanner (recommended - cross-platform, no dependencies)
npx react2shell-scanner /path/to/your/project
# Option B: Direct download and run
curl -sSL https://raw.githubusercontent.com/nxgn-kd01/react2shell-scanner/main/scan.js > scan.js
node scan.js /path/to/your/project
# Option C: Clone and run
git clone https://github.com/nxgn-kd01/react2shell-scanner.git
cd react2shell-scanner
node scan.js /path/to/your/project
Resultados en segundos: 🚨 Vulnerable | ⚠️ Advertencias | ✅ Seguro
Esta herramienta realiza una detección inteligente de vulnerabilidades:
'use server'React:
19.0.0, 19.1.0, 19.1.1, 19.2.0Paquetes React Server DOM:
react-server-dom-webpack 19.0.0 - 19.2.0react-server-dom-parcel 19.0.0 - 19.2.0react-server-dom-turbopack 19.0.0 - 19.2.0Next.js:
14.0.0 a 14.2.3414.3.0-canary.0 a 14.3.0-canary.8715.0.0 a 15.0.615.1.0 a 15.1.815.2.0 a 15.2.515.3.0 a 15.3.515.4.0 a 15.4.715.5.0 a Frameworks adicionales afectados (según el aviso oficial de React):
react-router 7.0.0 - 7.1.3waku 0.21.0 - 0.21.5@parcel/rsc 2.12.0 - 2.13.2@vitejs/plugin-rsc 0.1.0 - 0.2.0rwsdk (Redwood SDK) 0.1.0 - 0.4.0expo 52.0.0 - 52.0.9React: 19.2.1 o posterior
Next.js:
14.2.35+, 14.3.0-canary.88+15.0.7+, 15.1.9+, 15.2.6+, 15.3.6+, 15.4.8+, 15.5.7+16.0.10+Otros frameworks:
react-router: 7.1.4+waku: 0.21.6+@parcel/rsc: 2.13.3+@vitejs/plugin-rsc: 0.2.1+rwsdk: 0.4.1+expo: 52.0.10+Escáner Node.js (recomendado):
Escáner Bash:
# Install jq (if using Bash scanner)
# macOS
brew install jq
# Ubuntu/Debian
sudo apt-get install jq
# RHEL/CentOS
sudo yum install jq
Opción A: Clonar (recomendada para usuarios)
# Clone the repository
git clone https://github.com/nxgn-kd01/react2shell-scanner.git
cd react2shell-scanner
# Make scripts executable
chmod +x scan.sh scan.js
Opción B: Fork (recomendada para contribuidores)
# Fork on GitHub (click "Fork" button on repository page)
# Then clone your fork
git clone https://github.com/YOUR_USERNAME/react2shell-scanner.git
cd react2shell-scanner
# Make scripts executable
chmod +x scan.sh scan.js
# Add upstream remote to stay updated
git remote add upstream https://github.com/nxgn-kd01/react2shell-scanner.git
Opción C: Descarga directa
# Node.js version (recommended - cross-platform)
curl -O https://raw.githubusercontent.com/nxgn-kd01/react2shell-scanner/main/scan.js
chmod +x scan.js
# Bash version (Unix/Linux/macOS only)
curl -O https://raw.githubusercontent.com/nxgn-kd01/react2shell-scanner/main/scan.sh
chmod +x scan.sh
🔍 Escanear el directorio actual:
# Using Node.js (recommended)
node scan.js
# Using Bash
./scan.sh
📁 Escanear un proyecto específico:
node scan.js /path/to/project
./scan.sh /path/to/project
🗂️ Escaneo recursivo (todos los subdirectorios):
node scan.js -r
./scan.sh -r
Salida JSON (para automatización):
node scan.js --json
./scan.sh --json
Modo CI/CD (sale con el código 1 si es vulnerable):
node scan.js --ci
./scan.sh --ci
Salida detallada:
node scan.js -v
./scan.sh -v
Combinar opciones:
node scan.js /path/to/projects -r --json --ci
./scan.sh /path/to/projects -r --json --ci
| Código | Significado |
|---|---|
| 0 | No se encontraron vulnerabilidades |
| 1 | Se encontraron vulnerabilidades (cuando se usa la opción --ci) |
| 2 | Se produjo un error de escaneo |
$ node scan.js ~/my-react-app
╔════════════════════════════════════════════════════════════╗
║ CVE-2025-55182 Scanner (React2Shell) ║
╚════════════════════════════════════════════════════════════╝
Severity: CRITICAL (CVSS 10.0)
Description: Unauthenticated RCE in React Server Components
Scan Summary:
Total projects: 1
Vulnerable: 1
Safe: 0
⚠ VULNERABLE PROJECTS FOUND:
1. /Users/user/my-react-app
└─ react 19.0.0 → 19.2.1
└─ next 15.0.3 → 15.0.5
Fix command:
$ cd /Users/user/my-react-app
$ npm install [email protected] [email protected]
$ node scan.js ~/projects -r --json > results.json
{
"vulnerability": "CVE-2025-55182",
"severity": "CRITICAL",
"cvss": 10.0,
"scanned": 5,
"vulnerable": 2,
"results": [
{
"path": "/Users/user/projects/app1",
"vulnerable": true,
"packages": [
{
"name": "react",
"version": "19.0.0",
"fixVersion": "19.2.1"
}
],
"packageManager": "npm",
"fixCommands": [
"cd /Users/user/projects/app1",
"npm install [email protected]"
]
}
]
}
.github/workflows/security-scan.yml
name: CVE-2025-55182 Security Scan
on: [push, pull_request]
jobs:
scan:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: '18'
- name: Download CVE-2025-55182 Scanner
run: |
curl -O https://raw.githubusercontent.com/nxgn-kd01/cve-2025-55182-scanner/main/scan.js
chmod +x scan.js
- name: Scan for vulnerabilities
run: node scan.js --ci
GitLab CI (.gitlab-ci.yml)
security-scan:
stage: test
image: node:18
script:
- curl -O https://raw.githubusercontent.com/nxgn-kd01/cve-2025-55182-scanner/main/scan.js
- chmod +x scan.js
- node scan.js --ci
allow_failure: false
El escáner realiza las siguientes comprobaciones:
package.jsondependencies como de devDependencies'use server' en los archivos fuente'use server' (indica que hay Server Functions en uso)El escáner incluye detección inteligente para evitar falsos positivos:
output: 'export' se marcan como probablemente seguros'use server' para confirmar el uso real de Server ComponentsEjemplo de salida:
✓ No vulnerable projects found
ℹ Projects with analysis notes:
1. /path/to/project
ℹ Next.js ^15.1.3 is in vulnerable range, but using React 18 (safe - only React 19 affected)
2. /path/to/another-project
ℹ Next.js 16.0.5 with React 19 detected, but no 'use server' directives found (likely safe).
Note: dynamically imported Server Functions require manual review.
node scan.js -r
Para cada proyecto vulnerable, ejecuta el comando de corrección sugerido:
cd /path/to/project
npm install [email protected] [email protected] # Example
O con yarn:
yarn upgrade [email protected] [email protected]
O con pnpm:
pnpm update [email protected] [email protected]
npm test
npm run build
node scan.js --ci
R: Actualmente, el escáner comprueba las dependencias directas en package.json. Para un análisis profundo de dependencias, usa npm audit o yarn audit junto con esta herramienta.
R: No, React 18 NO está afectado ✅
CVE-2025-55182 solo afecta a los Server Components de React 19.x. El escáner identificará correctamente como seguras las aplicaciones React 18, incluso si usan versiones de Next.js 15.x o 16.x que están dentro del rango vulnerable.
R: ¡Sí! Usa la opción --ci para que el escáner salga con el código 1 si se encuentran vulnerabilidades, lo que hará fallar tu pipeline. Consulta los ejemplos de integración CI/CD anteriores.
R: Mitigaciones temporales (actualizar es la única solución definitiva):
⚠️ Crítico: Estas son solo medidas temporales. Actualiza a las versiones parcheadas lo antes posible.
R: Muy preciso, con prevención inteligente de falsos positivos:
'use server' para confirmar la vulnerabilidad realR: El escáner detecta las directivas 'use server' en tus archivos fuente. Sin embargo, las Server Functions importadas dinámicamente (cargadas en tiempo de ejecución mediante import()) pueden no detectarse estáticamente. Si el escáner informa "no se encontraron directivas 'use server'" pero usas importaciones dinámicas para Server Functions, deberías revisar manualmente esos archivos. El escáner incluirá una nota recordándotelo.
¡Las contribuciones son bienvenidas! No dudes en enviar issues o pull requests.
# Test on sample projects
./test-scanner.sh
Este escáner ahora detecta todos los frameworks principales con soporte RSC según el aviso oficial de React:
Para frameworks adicionales, abre un issue o envía un PR.
Licencia MIT: consulta el archivo LICENSE para más detalles
Esta herramienta se proporciona tal cual para ayudar a la comunidad a identificar proyectos vulnerables. Verifica siempre los resultados del escáner y prueba las actualizaciones en un entorno seguro antes de implementarlas en producción.
Si encuentras útil esta herramienta, por favor:
¡Mantente seguro y mantén tus dependencias actualizadas!
| Propiedad | Valor |
|---|
| CVE ID | CVE-2025-55182 |
| Nombre | React2Shell |
| Puntuación CVSS | 10.0 (CRÍTICO) |
| Vector CVSS | AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H |
| Vector de ataque | Red |
| Autenticación | No requerida |
| Impacto | Compromiso total del sistema |
15.5.616.0.0 a 16.0.9| Opción | Descripción |
|---|
-r, --recursive | Escanea todos los subdirectorios en busca de proyectos Node.js |
-v, --verbose | Muestra una salida detallada |
--json | Muestra los resultados como JSON |
--ci | Sale con el código 1 si se encuentran vulnerabilidades (para CI/CD) |
-h, --help | Muestra el mensaje de ayuda |