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_POC — Prueba de concepto de exploit para CVE-2026-39987, un RCE de preautenticación en el endpoint WebSocket /terminal/ws de Marimo que proporciona una shell interactiva sin credenciales. | Kitploit
Herramientas/GitHubGitHub/julichaan/cve-2026-39987_poc
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónAutenticaciónHerramienta de Acceso Remoto
GitHubjulichaan/cve-2026-39987_poc

CVE-2026-39987_POC

Prueba de concepto de exploit para CVE-2026-39987, un RCE de preautenticación en el endpoint WebSocket /terminal/ws de Marimo que proporciona una shell interactiva sin credenciales.

Ver Repositorio
hace 10h 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

PoC — CVE-2026-39987 · RCE Pre-Auth en Marimo

CVSS 4.0: 9.3 (Crítico) · AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H Afecta a: marimo <= 0.20.4 · Parcheado: 0.23.0 · CWE-306 (Autenticación Faltante) Aviso: GHSA-2679-6mx9-h9xc · Corrección: marimo-team/marimo@c24d480

Causa raíz

El endpoint WebSocket /terminal/ws (marimo/_server/api/endpoints/terminal.py) solo verifica el modo de sesión (EDIT) y el soporte de la plataforma antes de aceptar la conexión y llamar a pty.fork(). No lleva ni un decorador @requires(...) ni una llamada a validate_auth().

Contraste medido en 0.20.4:

  • 73 usos de @requires(...) en 18 endpoints.
  • /ws (notebook) -> 2 llamadas a .
validate_auth()
  • terminal.py -> 0 @requires, 0 validate_auth. <-- el fallo.
  • El middleware AuthBackend protege HTTP y el websocket /ws, pero /terminal/ws acepta la conexión sin cookie y sin token y bifurca un shell PTY con los privilegios del proceso de marimo.

    Requisitos de explotación

    • marimo iniciado en modo EDIT (marimo edit ...), que es el modo por defecto del editor.
    • Una plataforma con soporte de pty (Linux/macOS; Windows y Pyodide no se ven afectados).
    • Acceso de red al puerto. No se requieren credenciales.

    Escenario de ataque

    Un atacante que pueda alcanzar un servidor marimo edit a través de la red (común en despliegues remotos / en contenedores, a menudo ejecutándose como root) obtiene un shell interactivo sin autenticarse: robo de credenciales (cat .env), movimiento lateral, despliegue de malware. Explotado en la naturaleza < 10 h después de la divulgación; añadido al catálogo KEV de CISA el 2026-04-23.

    Uso del PoC

    root@kitploit:~
    pip install "marimo==0.20.4" websockets
    marimo edit demo.py --headless --port 2718 --token --token-password SECRET
    python exploit.py ws://127.0.0.1:2718 "id; cat /etc/passwd"
    

    exploit.py no envía token, ni cookie, ni cabecera Authorization. Envía el comando como texto plano + "\r" (Enter), exactamente como lo escribiría un usuario en la terminal.

    Resultado obtenido en el laboratorio (Kali, marimo 0.20.4)

    • Línea base SIN token: HTTP -> 401 ; /ws -> 403 (la autenticación SÍ funciona).
    • /terminal/ws SIN token -> ACEPTADO. Ejecutado en el servidor: uid=1000() gid=1000() ... Linux ... y escribió /tmp/cve_2026_39987_proof.txt -> RCE confirmado.

    Remediación

    Actualizar a marimo >= 0.23.0. Mitigación temporal: no exponer marimo edit a redes no confiables; colocar el editor detrás de un proxy autenticado; ejecutarlo sin privilegios / en un contenedor sin secretos.

    Descargo de responsabilidad

    Solo para pruebas de seguridad autorizadas y uso educativo. Ejecútalo únicamente contra sistemas que poseas o para los que tengas permiso explícito de probar.

    Descargar herramienta