Marimo Flaw Exploited Instantly
CriticalExecutive Summary
A critical unauthenticated remote code execution vulnerability, identified as CVE-2026-39987, in the Marimo open-source Python notebook has been actively exploited in the wild.
Attackers began leveraging the flaw less than 10 hours after its public disclosure, creating a working exploit directly from the advisory to steal credentials.
Vulnerability Details
- Affected Product: Marimo versions up to and including 0.20.4
- Identifier: CVE-2026-39987
- CVSS Score: 9.3 (Critical)
- Exploitation Status: Actively Exploited
Risk & Impact
- Triage: Immediate patching is required due to active, trivial exploitation.
- Attack Vector: An unauthenticated attacker can connect to the `/terminal/ws` WebSocket endpoint, which fails to validate authentication, to gain a full interactive shell and execute arbitrary system commands.
- Ease of Exploit: Trivial. An attacker can gain a root shell with a single WebSocket connection, without needing any credentials or user interaction.
Action Plan
- Immediate Action: Upgrade Marimo instances to version 0.23.0 or newer.
- Detection: Monitor for connections to the `/terminal/ws` WebSocket endpoint. Sysdig has observed reconnaissance from 125 IP addresses and exploitation from a single IP.
Relevant professional terms
- Unauthenticated Bug
- A security flaw that can be exploited by an attacker without needing to provide any form of login credentials (e.g., username or password). This makes the vulnerability particularly dangerous as it can be leveraged by any remote attacker.
- WebSocket
- A communication protocol that provides full-duplex communication channels over a single TCP connection. In this case, the vulnerable WebSocket endpoint `/terminal/ws` allowed for a persistent, interactive shell.
Source: SecurityWeek
