RCE Crítico en Marimo: Explotación en 9 Horas Sin PoC Público
La vulnerabilidad crítica CVE-2026-39987 (CVSS 9.3) en versiones de Marimo anteriores a la 0.23.0 permite acceso no autorizado a shell root mediante WebSocket. Sysdig detectó el primer ataque apenas 9 horas y 41 minutos después de que se publicara el aviso el 8 de abril de 2026. Los atacantes construyeron un exploit únicamente con la descripción técnica —sin necesidad de un PoC público— y extrajeron secretos de un honeypot en menos de tres minutos.
El fallo reside en el endpoint /terminal/ws: carece de la llamada validate_auth() presente en /ws. Una simple conexión WebSocket otorga una shell PTY con privilegios de proceso. En imágenes Docker por defecto, esto significa acceso root, además de exposición de claves API de OpenAI, Anthropic y Google Gemini almacenadas en archivos .env.
Detalles Técnicos de la Vulnerabilidad
Marimo utiliza WebSockets para conexiones persistentes: /ws gestiona la interfaz reactiva y las celdas del cuaderno, mientras que /terminal/ws impulsa el terminal integrado. El último endpoint solo verifica banderas de modo terminal y compatibilidad con PTY —no se realiza autenticación con token de sesión.
La validación a nivel de red ocurre automáticamente. Como resultado, cualquier cliente remoto puede conectarse y ejecutar comandos con privilegios del servidor. GHSA-2679-6MX9-H9XC clasifica esto como CWE-306 (autenticación ausente para funciones críticas). La corrección en el PR #9098 añade la verificación validate_auth() faltante.
Las implementaciones en Docker aumentan el riesgo: los procesos se ejecutan como root, y los secretos se almacenan en archivos .env o ~/.aws/credentials. El compromiso lleva al acceso total a facturación de LLM, modelos y conjuntos de datos.
Cronología del Ataque e Indicadores
- 00:00: Aviso publicado.
- 09:41: Primera conexión a
/terminal/wsobservada en el honeypot de Sysdig. - <3 min: Navegación por sistema de archivos, lectura de
.env, claves SSH y configuraciones de nube. - ~1 hora: El atacante regresó para verificar persistencia.
No se desplegaron mineros ni backdoors —indicando una operación dirigida por un atacante activo. Monitorea el tráfico WebSocket a través de proxies (nginx access.log, Caddy stdout). Actividad sospechosa: conexiones desde IP externas a /terminal/ws tras el 8 de abril de 2026.
Rutas comunes para descubrir secretos:
.env~/.ssh/id_rsa,~/.ssh/id_ed25519~/.aws/credentials~/.config/gcloud/~/.bash_history
Patrón de RCE en Herramientas de IA
Marimo (20k estrellas en GitHub) es ampliamente utilizado en Stanford, Mozilla AI, OpenAI y BlackRock. Sus despliegues abarcan Docker, Hugging Face Spaces y CoreWeave. Este caso marca el tercer RCE en meses:
- Langflow CVE-2026-33017 — explotado en menos de 20 horas.
- Flowise CVE-2025-59528 (CVSS 10.0) — explotado tras la corrección.
- Marimo CVE-2026-39987.
Las cadenas de herramientas de IA (cuadernos, pipelines) suelen tratarse como herramientas de desarrollo —lo que genera segmentación débil, monitoreo deficiente y privilegios excesivos. Realidad: acceso productivo a modelos, datos y sistemas de facturación.
Medidas de Protección y Pasos de Auditoría
Actualiza inmediatamente:
- Ejecuta
marimo --versionpara confirmar ≥ 0.23.0. - En Docker: reconstruye la imagen usando un usuario no root (
USER).
Si tu puerto estuvo expuesto tras el 8 de abril, el compromiso es probable. Aplica estas acciones:
- Rotar secretos: claves de LLM, credenciales de nube, claves SSH.
- Audita los registros de facturación de OpenAI/Anthropic/Google ante solicitudes desconocidas.
- Usa
ss -tlnp | grep LISTENpara verificar si Marimo, Jupyter o Flowise escuchan en 0.0.0.0. - Inicia con
marimo edit --host 127.0.0.1y añade protección mediante proxy inverso (autenticación nginx, OAuth2 en Caddy). - Monitorea avisos via GitHub Security Advisories, osv.dev y CISA KEV.
Conclusiones Clave
- Velocidad de ataque: 9h 41m desde el aviso hasta el RCE —típico para vulnerabilidades bien documentadas.
- Acceso root por defecto: Marimo en Docker requiere personalización explícita del usuario.
- Los secretos son el objetivo principal: Archivos
.envcon claves de LLM son objetivos prioritarios. - Tendencia de RCE en IA: Tercer RCE consecutivo —exige prácticas de seguridad de producción.
- Detección: Vigila los logs de
/terminal/wsen proxies; audita patrones de uso de LLM.
— Editorial Team
Aún no hay comentarios.