Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2025-55182 — Investigación de tesis de maestría sobre CVE-2025-55182 (React2Shell). Marco de explotación modular con 6 escenarios de ataque (RCE, exfiltración, desfiguración), shell inversa interactiva y un laboratorio vulnerable completo para estudiar la contaminación de prototipos y la deserialización insegura en React Server Components. | Kitploit
Herramientas/GitHubGitHub/devianntsec/cve-2025-55182
Frameworks de ExploitsAnálisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPost-ExplotaciónPruebas de PenetraciónPapers e InvestigaciónAprendizaje y EducaciónHerramienta de Acceso Remoto
Desarrollo de Payloads
Labs y Práctica
GitHubdevianntsec/cve-2025-55182

CVE-2025-55182

Ver Repositorio
126hace 6 mesesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →

Acerca de

Investigación de tesis de maestría sobre CVE-2025-55182 (React2Shell). Marco de explotación modular con 6 escenarios de ataque (RCE, exfiltración, desfiguración), shell inversa interactiva y un laboratorio vulnerable completo para estudiar la contaminación de prototipos y la deserialización insegura en React Server Components.

Compartir

CVE-2025-55182 — React2Shell: Exploit Avanzado e Investigación de Tesis de Máster

Platform Language License: MIT Research CVSS

Deserialización de datos no confiables + contaminación de prototipos en React Server Components
Ejecución remota de código sin autenticación a través de Next.js Server Actions
Versiones afectadas: React 19.0.0 - 19.2.0 · Parche: React 19.0.1 / 19.1.2 / 19.2.1 (3 de diciembre de 2025)


Demostración del exploit avanzado: comandos básicos de RCE, shell interactiva y múltiples vectores de ataque contra una aplicación Next.js vulnerable

Descripción

Este repositorio contiene mi investigación de Tesis de Máster sobre CVE-2025-55182, una vulnerabilidad de Ejecución Remota de Código de severidad Crítica (CVSS v3.1: 10.0) en React Server Components.

La vulnerabilidad se origina en un mecanismo de deserialización inseguro dentro del protocolo React Flight. Al procesar Server Actions, Next.js deserializa los payloads multipart entrantes sin una validación adecuada. Un atacante puede crear un payload malicioso que contamina la cadena de prototipos e inyecta JavaScript arbitrario, que se ejecuta en el servidor a través del constructor Function (y posteriormente mediante child_process.execSync()).

Nota sobre CVE-2025-66478: Vercel emitió un CVE paralelo para rastrear el impacto específico de esta misma vulnerabilidad en Next.js. Debido a que Next.js incluye React como dependencia interna (vendored), muchos escáneres de dependencias no lo detectan automáticamente como vulnerable. La Base de Datos Nacional de Vulnerabilidades de EE. UU. (NVD) rechazó oficialmente CVE-2025-66478 por ser un duplicado de CVE-2025-55182, aunque continúa apareciendo en el aviso de seguridad de Vercel.

Vulnerabilidades posteriores: El equipo de React reveló posteriormente dos problemas adicionales presentes en las versiones iniciales del parche (19.0.1, 19.1.2, 19.2.1): CVE-2025-55184 (Denegación de Servicio, CVSS 7.5) y CVE-2025-55183 (Exposición de Código Fuente, CVSS 5.3). Los usuarios deben actualizar a 19.0.2, 19.1.3 o 19.2.2 para solucionar los tres.

Mi contribución

AspectoDescripción
Cuatro módulos de ataqueEliminar proyectos, desfigurar el sitio web, robar variables de entorno, apagar servidores
Shell interactivaShell persistente con comandos especiales y capacidad de restauración
Exfiltración estableLectura línea por línea para evadir las limitaciones de tamaño de las cabeceras HTTP
Script de restauraciónRestauración segura del laboratorio tras los ataques
Documentación académicaCausa raíz, desglose del payload y cronología de la vulnerabilidad

Estructura del Repositorio

CVE-2025-55182/
├── README.md                        # This file
├── LICENSE                          # MIT License
│
├── exploit/
│   ├── exploit-explanation.md       # Exploit usage documentation
│   └── react2shell.py               # Main exploit — 4 attack modules + interactive shell
│
├── vulnerable-app/                  # Vulnerable Next.js application
│   ├── README.md                    # Original vulnapp credits
│   ├── package.json                 # React 19.0.0 (vulnerable)
│   ├── app/                         # Application source code
│   ├── curl_id.sh                   # Original exploit script (by zack0x01)
│   └── scripts/
│       └── restore.sh               # Restoration script (my contribution)
│
└── docs/
    ├── screenshots/                 # Exploitation demonstrations
    │   ├── 01-app-initial.png
    │   ├── 02-rce-basic.png
    │   ├── 03-interactive-shell.png
    │   ├── 04-no-payload.png
    │   ├── 05-delete-result.png
    │   ├── 06-deface.png
    │   ├── 07-shutdown-servers.png
    │   ├── 08-restore-from-script.png
    │   └── 09-restore-from-interactive-shell.png
    │
    └── analysis/
        ├── 01-root-cause.md         # Vulnerability root cause analysis
        ├── 02-payload-breakdown.md  # Payload structure and execution flow
        └── 03-timeline.md           # CVE timeline

Inicio rápido

Requisitos previos

  • Node.js 18+ y npm
  • Python 3.9+
  • Aplicación Next.js vulnerable (incluida en vulnerable-app/)
  • Se recomienda una máquina virtual aislada para las pruebas

Paso 1 — Iniciar la aplicación vulnerable

cd vulnerable-app
npm install --legacy-peer-deps
npm run dev
# App available at http://localhost:3000

Paso 2 — Ejecutar el exploit

cd ../exploit

# Check if target is vulnerable
python3 react2shell.py -u http://localhost:3000 --check

# Execute single command
python3 react2shell.py -u http://localhost:3000 -c "whoami"

# Interactive shell mode
python3 react2shell.py -u http://localhost:3000 -i

Módulos de ataque

MóduloComandoDescripciónImpacto
Eliminar Proyectos--delete-projectsElimina todos los proyectos del panelDestrucción de datos
Desfigurar (Deface)--deface "message"Reemplaza la página principalDesfiguración
Robar Entorno--steal-envRoba las variables de entornoExfiltración
Apagar Servidores--shutdown-serversApaga todos los servidoresDenegación de Servicio

Descripción técnica

Causa raíz de la vulnerabilidad

React Server Components utiliza un mecanismo personalizado de serialización/deserialización (el protocolo «Flight») para enviar datos de componentes del servidor al cliente. Al procesar server actions, el servidor deserializa los payloads entrantes sin una validación adecuada.

El fallo principal es la confianza en el comportamiento: el deserializador comprueba typeof obj.then === 'function' para identificar Promises, sin verificar que la propiedad pertenezca directamente al objeto. Esto permite a un atacante envenenar Object.prototype.then, haciendo que cualquier objeto plano parezca un thenable.

Un atacante puede crear un payload malicioso que:

  1. Contamina la cadena de prototipos usando __proto__:then
  2. Redirige la resolución al constructor Function mediante $1:constructor:constructor
  3. Ejecuta JavaScript arbitrario a través de new Function(_prefix)
  4. Ejecuta comandos del sistema mediante process.mainModule.require('child_process').execSync()
  5. Exfiltra la salida a través de la cabecera de respuesta HTTP X-Action-Redirect
User-mode (unauthenticated)
  │
  ├─ POST / (Next.js Server Action endpoint)
  │    ├─ Headers: Next-Action: x
  │    └─ Multipart body with malicious JSON
  │
  └─ React Flight deserializer processes payload
       └─ Prototype pollution via __proto__:then
            └─ Function constructor reached via $1:constructor:constructor
                 └─ new Function(_prefix) executes attacker's JavaScript
                      └─ execSync() runs system command
                           └─ Output embedded in NEXT_REDIRECT error
                                └─ Next.js converts to X-Action-Redirect header

Aclaración sobre el alcance

Descargar herramienta