RCE Crítica en Marimo Explotada Horas Después de su Divulgación: Científicos de Datos en Riesgo
Una vulnerabilidad crítica de ejecución remota de código (RCE) en la plataforma de notebooks de código abierto Python **Marimo**, rastreada como **CVE-2026-39987**, fue explotada activamente dentro de las 10 horas posteriores a su divulgación pública. Investigadores de **Sysdig** observaron a atacantes aprovechando la falla para exfiltrar información sensible, lo que resalta la velocidad con la que los exploits se instrumentalizan en el panorama de amenazas actual.

**Marimo**, un popular entorno de notebooks Python de código abierto preferido por científicos de datos, profesionales de ML/AI e investigadores, enfrentó un grave incidente de seguridad tras la divulgación de **CVE-2026-39987**. La vulnerabilidad permite la ejecución remota de código sin autenticación en las versiones 0.20.4 y anteriores, y **GitHub** la calificó como crítica (9.3/10).
### La Vulnerabilidad: CVE-2026-39987
La causa raíz se encuentra en el endpoint WebSocket `/terminal/ws`, que expone una terminal interactiva sin la autenticación adecuada. Esto permite que cualquier cliente no autenticado se conecte y obtenga acceso directo a un shell interactivo completo con los mismos privilegios que el proceso de **Marimo**.
Los desarrolladores de **Marimo** divulgaron la falla el 8 de abril y lanzaron la versión 0.23.0 para solucionarla. La actualización es crucial para los usuarios que desplegaron **Marimo** como un notebook editable o lo expusieron a una red compartida utilizando el flag `--host 0.0.0.0` mientras estaban en modo de edición.
### Explotación Rápida en la Naturaleza
Según **Sysdig**, la actividad de reconocimiento comenzó desde 125 direcciones IP dentro de las primeras 12 horas después de que se publicaran los detalles de la vulnerabilidad. El primer intento de explotación, enfocado en el robo de credenciales, se observó menos de 10 horas después de la divulgación.
La secuencia de ataque implicó:
1. **Validación de Vulnerabilidad:** Conexión al endpoint `/terminal/ws` y ejecución de un script corto para confirmar la ejecución remota de comandos.
2. **Reconocimiento Manual:** Emisión de comandos básicos como `pwd`, `whoami` y `ls` para comprender el entorno, seguido de intentos de navegación por directorios y verificaciones de ubicaciones relacionadas con SSH.
3. **Recolección de Credenciales:** Ataque al archivo `.env` para extraer variables de entorno, incluidas credenciales de la nube y secretos de aplicaciones. También se intentó leer archivos adicionales y sondear claves SSH.

*Fuente: Sysdig*
La fase completa de acceso a credenciales se completó en menos de tres minutos, lo que resalta la eficiencia del atacante. El atacante regresó una hora después para una segunda sesión de explotación utilizando la misma secuencia.
Los investigadores de **Sysdig** creen que el ataque fue llevado a cabo por un “operador metódico” con un enfoque práctico, centrándose en objetivos de alto valor como credenciales `.env` y claves SSH, en lugar de desplegar scripts automatizados o backdoors persistentes.
### Pasos de Mitigación
Se recomienda encarecidamente a los usuarios de **Marimo** que:
* Actualicen a la versión 0.23.0 inmediatamente.
* Monitoreen las conexiones WebSocket a `/terminal/ws`.
* Restrinjan el acceso externo a través de un firewall.
* Roteen todos los secretos expuestos.
Si la actualización no es factible de inmediato, bloquear o deshabilitar el acceso al endpoint `/terminal/ws` es una estrategia de mitigación efectiva.