Marimo · Marimo · Marimo Remote Code Execution Vulnerability
Verdict
Patch first · actively exploited, reachable from the internet without credentials, and in the top 5% of CVEs by near-term exploitation probability
Added to CISA KEV 2026-04-23 · exploited in the wild for 157 days
CVSS 9.3 CRITICAL. The score is a summary; these three components are the part that decides whether something scanning the internet can use it.
| Attack vector | networkreachable over the network, with no local access needed |
|---|---|
| Privileges required | noneneeds no credentials at all |
| User interaction | nonecan be triggered with nobody interacting with the page or request |
| Base vector | CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X |
| Weakness | CWE-306 |
This describes the vulnerability. It says nothing about whether your systems run it.
EPSS puts the probability of exploitation in the next 30 days at 0.3786, which places it in the top 5% of all tracked CVEs. The percentile is the more useful half: 0.18 in absolute terms sounds low until you know most of the internet-facing software in the world scores under that.
| EPSS probability | 0.3786 |
|---|---|
| Percentile | 0.985 — top 5% |
| Added to KEV | 2026-04-23 |
|---|---|
| Days exploited | 157 |
| Federal remediation due | not set |
| Ransomware use | no known ransomware campaign use |
Apply mitigations per vendor instructions, follow applicable BOD 22-01 guidance for cloud services, or discontinue use of the product if mitigations are unavailable.
marimo is a reactive Python notebook. Prior to 0.23.0, Marimo has a Pre-Auth RCE vulnerability. The terminal WebSocket endpoint /terminal/ws lacks authentication validation, allowing an unauthenticated attacker to obtain a full PTY shell and execute arbitrary system commands. Unlike other WebSocket endpoints (e.g., /ws) that correctly call validate_auth() for authentication, the /terminal/ws endpoint only checks the running mode and platform support before accepting connections, completely skipping authentication verification. This vulnerability is fixed in 0.23.0.