Una vulnerabilidad crítica en Marimo (CVE-2026-39987) permite ejecución remota de código sin autenticación y ya se ha observado en ataques reales pocas horas después de hacerse pública. El problema afecta a un terminal interactivo expuesto por WebSocket y se corrige actualizando a Marimo 0.23.0.

Cuando una aplicación ofrece funciones ‘de conveniencia’ para depurar o trabajar de forma interactiva, cualquier error de control de acceso puede convertirse en una puerta directa a la máquina. En este caso, el impacto es especialmente delicado porque Marimo, como notebook reactivo en Python, suele ejecutarse cerca de código, datos y credenciales que abren la puerta a otros sistemas.
La vulnerabilidad CVE-2026-39987 permite ejecución remota de código (RCE) sin autenticación a través de un endpoint de WebSocket asociado a un terminal. En concreto, el servicio expone un terminal interactivo en la ruta /terminal/ws sin comprobaciones de autenticación adecuadas, lo que posibilita que un tercero establezca una sesión remota y obtenga una shell interactiva con los mismos privilegios que el proceso de Marimo. En la práctica, si la instancia está accesible desde Internet o desde una red compartida, un atacante puede pasar de ‘ver’ un servicio a ejecutar comandos en el sistema.
Las versiones afectadas incluyen Marimo 0.20.4 y anteriores. Tras la divulgación pública, la explotación se observó en un plazo muy corto (aproximadamente 10 horas), con actividad de reconocimiento intensa en la primera mitad del día: se registraron intentos desde más de un centenar de direcciones, lo que encaja con patrones habituales de escaneo automatizado que buscan servicios expuestos y vulnerabilidades recientes.
Una vez dentro, el valor para el atacante no es solo ejecutar comandos puntuales, sino acceder a secretos operativos. En sesiones analizadas se vio interés por robo de credenciales, incluyendo lectura de ficheros como .env y búsqueda de claves SSH. Esto es crítico porque un notebook suele convivir con variables de entorno que contienen tokens de cloud, claves de API, credenciales de bases de datos o accesos a repositorios; con esos datos, un incidente puede evolucionar rápidamente hacia movimiento lateral y compromiso de entornos más amplios. En las observaciones descritas no se apreció instalación de persistencia, ni despliegue de cryptominers o backdoors, pero eso no reduce el riesgo: el acceso interactivo ya es suficiente para extraer secretos y reutilizarlos fuera del host.
El riesgo se dispara en despliegues configurados para escuchar en todas las interfaces, por ejemplo con –host 0.0.0.0, especialmente si se utiliza el modo de edición o se ofrece el servicio como notebook editable en entornos no aislados. La corrección está disponible actualizando a Marimo 0.23.0. Además de aplicar el parche, resulta prudente rotar secretos potencialmente expuestos (tokens, credenciales y claves), revisar registros de acceso y monitorizar conexiones WebSocket hacia /terminal/ws. Si no es posible actualizar de inmediato, conviene restringir el acceso con firewall y bloquear o deshabilitar por completo el endpoint del terminal para cortar el vector de entrada.
Más información
-
- BleepingComputer – Critical Marimo pre-auth RCE flaw now under active exploitation : https://www.bleepingcomputer.com/news/security/critical-marimo-pre-auth-rce-flaw-now-under-active-exploitation/
- eSECURITY PLANET – Marimo RCE Flaw Exploited Within Hours of Disclosure : https://www.esecurityplanet.com/threats/marimo-rce-flaw-exploited-within-hours-of-disclosure/
- CVE – CVE-2026-39987 : https://www.cve.org/CVERecord?id=CVE-2026-39987
La entrada Explotación activa de un RCE crítico en Marimo se publicó primero en Una Al Día.