
Script Bash para detectar CVE-2025-55182 (React2Shell) y exposición de credenciales en proyectos Next.js. Cero dependencias.
La versión japonesa está disponible en README.ja.md.
Script Bash para detectar CVE-2025-55182 (React2Shell) y exposición de credenciales en proyectos Next.js. Sin dependencias.
CVSS: 10.0 (CRÍTICO) | CWE-502: Deserialización de datos no confiables | SNORT SID: 65554
Ejecución remota de código no autenticada mediante deserialización de datos no confiables en Server Components de Next.js. Un atacante envía una solicitud HTTP manipulada a cualquier endpoint de Server Component de Next.js; el servidor deserializa la carga útil y ejecuta código arbitrario.
Versiones afectadas:
| Paquete | Rango vulnerable |
|---|---|
| Next.js | 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, 15.6.0, 16.0.0–16.0.6 |
| React | 19.0.0, 19.1.0, 19.1.1, 19.2.0 |
Referencias:
Fase 1 — Versión de Next.js: Lee package.json, package-lock.json y yarn.lock para encontrar la versión resuelta de Next.js y la compara contra el rango vulnerable.
Fase 2 — Versión de React: Mismo enfoque para React (19.0.0, 19.1.0, 19.1.1, 19.2.0).
Fase 3 — App Router / Server Components: Detecta el directorio app/ y las directivas "use server". Una versión vulnerable con Server Components activos es una superficie de ataque activa.
Fase 4 — Exposición de credenciales: Escanea archivos .env* (excluye .env.example y .env.sample), next.config.* y archivos fuente en busca de claves API, URLs de bases de datos, secretos JWT y prefijos secretos codificados (sk-, AKIA, ghp_, npm_).
Fase 5 — Claves SSH: Busca archivos de clave privada (id_rsa, *.pem, *.p12, etc.) y directorios .ssh/ dentro del proyecto.
Fase 6 — Configuración en la nube: Verifica archivos Docker Compose en busca de secretos codificados, manifiestos de Kubernetes por exposición de tokens de cuentas de servicio y uso de AWS SDK por indicios de IMDSv2.
Fase 7 — Verificación de IoC: Busca direcciones IP C2 de la inteligencia de Cisco Talos y patrones sospechosos de dotfiles en /tmp/ (Linux).
IPs C2 (Cisco Talos): 144.172.102.88 / 172.86.127.128 / 144.172.112.136 / 144.172.117.112
Fase 8 — Resumen: Conteos CRÍTICO/ADVERTENCIA/INFO con pasos de remediación.
No necesita instalación. Descargue y ejecute:
curl -O https://raw.githubusercontent.com/aliksir/nextjs-security-scanner/main/scan.sh
bash scan.sh [directorio-destino]
O clone:
git clone https://github.com/aliksir/nextjs-security-scanner.git
bash nextjs-security-scanner/scan.sh /ruta/a/tu/app-nextjs
# Escanear el directorio actual
bash scan.sh
# Escanear un proyecto específico
bash scan.sh /ruta/a/app-nextjs
# En CI/CD (código de salida distinto de cero = fallo del pipeline)
bash scan.sh . || exit 1
Códigos de salida:
0 — Sin problemas1 — Advertencias (patrones de credenciales detectados, requiere revisión)2 — Crítico (versión vulnerable confirmada, acción inmediata requerida)=== Escáner de Seguridad de Next.js ===
Objetivo: /home/usuario/miapp
Fecha: 2026-04-04 12:00
CVE: CVE-2025-55182 (React2Shell, CVSS 10.0)
[Fase 1] Verificación de versión de Next.js
[CRÍTICO] Next.js v15.2.4 es vulnerable a CVE-2025-55182 (React2Shell)
-> package.json: "next": "^15.2.4"
-> Esta versión permite RCE no autenticada mediante deserialización de Server Components
[Fase 2] Verificación de versión de React
[CRÍTICO] React v19.1.0 está en la lista vulnerable de CVE-2025-55182
[Fase 3] Detección de App Router / Server Components
[INFO] App Router detectado (directorio app/ existe)
[CRÍTICO] Next.js vulnerable + Server Components = superficie de ataque activa para React2Shell
...
=== Resumen del Escaneo ===
CRÍTICO : 3
ADVERTENCIA : 0
INFO : 2
Se encontraron problemas críticos. Se requiere acción inmediata.
=== Remediación (CVE-2025-55182) ===
1. Actualice Next.js a una versión parcheada:
npm install next@latest
...
Actualice inmediatamente:
npm install next@latest
npm install react@latest react-dom@latest
Consulte https://github.com/vercel/next.js/releases para la primera versión parcheada en cada serie menor.
Si se sospecha explotación:
ps aux | grep -E '\.sh|\.py'
crontab -l; cat /etc/cron*
ss -tnp | grep -E '144\.172|172\.86'
ls -la /tmp/ | grep '^\.'
144.172.102.88, 172.86.127.128, 144.172.112.136, 144.172.117.112bash scan.sh [directorio-destino]
Palabras clave de activación: "next.js security check", "CVE-2025-55182", "React2Shell", "Next.js vulnerability scan"
Consulte claude-code/SKILL.md para el envoltorio de la habilidad.
Esta herramienta se proporciona únicamente con fines de seguridad defensiva. Realiza comprobaciones locales, solo de lectura, contra sus propios archivos de proyecto. No se realizan conexiones de red, no se envían datos externamente y no se ejecutan exploits.
La información de vulnerabilidades y datos de IoC se basan en fuentes públicas (NVD, Cisco Talos). Este escáner puede producir falsos positivos o no detectar ciertos vectores de ataque. No reemplaza auditorías de seguridad profesionales, pruebas de penetración ni parches de seguridad proporcionados por el proveedor.
Úselo bajo su propio riesgo. Los autores no asumen ninguna responsabilidad por daños derivados del uso de esta herramienta.
MIT — consulte LICENSE