Marimo Remote Code Execution Vulnerability
marimo-team — marimo
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.
9.3
95.6%
Vector breakdown
- Attack vector
- Network
- Attack complexity
- Low
- Attack requirements
- None
- Privileges required
- None
- User interaction
- None
- Confidentiality (Vulnerable System)
- High
- Integrity (Vulnerable System)
- High
- Availability (Vulnerable System)
- High
- Confidentiality (Subsequent System)
- None
- Integrity (Subsequent System)
- None
- Availability (Subsequent System)
- None
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
- Published
- Apr 9, 2026
- Modified
- Apr 24, 2026
- Added to KEV
- Apr 23, 2026
- Federal patch due
- May 7, 2026
CISA required action
Apply mitigations per vendor instructions, follow applicable BOD 22-01 guidance for cloud services, or discontinue use of the product if mitigations are unavailable.
Weakness classification
Proof-of-concept & exploitation references
Weaponization
Public repositories whose name or description references CVE-2026-39987, found via a live GitHub search at request time. These are community-sourced signals, not a verified working exploit - cross-check each one before relying on it, and treat higher star counts and recent activity as (weak) corroboration, not proof.
No public GitHub repositories referencing CVE-2026-39987 were found at last check. Absence here is not proof no exploit exists - see the references below for vendor advisories and write-ups.
References
Frequently asked questions
What is CVE-2026-39987?
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.
How severe is CVE-2026-39987?
CVE-2026-39987 has a CVSS base score of 9.3 out of 10 (CVSS 4.0).
Is CVE-2026-39987 actively exploited in the wild?
Yes. CVE-2026-39987 is listed in the CISA Known Exploited Vulnerabilities (KEV) catalog, added Apr 23, 2026, meaning CISA has confirmed evidence of active exploitation.
What is the EPSS score for CVE-2026-39987?
95.6% - meaning FIRST.org's EPSS model estimates a 95.6% probability this vulnerability will be exploited in the wild within 30 days (100% percentile among all scored CVEs).
What type of vulnerability is CVE-2026-39987?
CVE-2026-39987 is classified under CWE-306 (CWE-306: Missing Authentication for Critical Function).
Cross-checked against
Impactr finds and proves whether CVE-2026-39987 - or flaws like it - are actually reachable in your own web apps and APIs, with a reproducible exploit as evidence.
Join the waitlist