CVE-2026-39987
marimo Affected by Pre-Auth Remote Code Execution via Terminal WebSocket Authentication Bypass
Exploited in the wild. In CISA KEV since 2026‑04‑23. Fixed in 0.23.0.
No public exploit knownFix0.23.0Upgrade to this build
e.g. Marimo <= 0.20.4 - Pre-Auth Terminal WebSocket RCE
What to do
Find your product and version, then upgrade to the build on the right.
- Marimo-team MarimoAffected: < 0.23.0Upgrade to: not statedStated by: CVE record
- Coreweave MarimoAffected: < 0.23.0Upgrade to: 0.23.0Stated by: NVD
Versions as the sources state them. Full version matrix after sign-in
Steps
Written by AI from the record- Check whether your Marimo deployment is running a version earlier than 0.23.0 and whether the terminal functionality is enabled.
- Upgrade Marimo to 0.23.0 (or a later release) to remove the unauthenticated terminal WebSocket command-execution path.
- If you cannot upgrade right away, temporarily disable the terminal feature or block access to the terminal WebSocket endpoint from untrusted networks (e.g., the public internet), then plan the upgrade immediately.
- After updating, review server logs and alerts for signs of command execution attempts or unusual outbound connections from the Marimo host.
Coverage timeline
1 publisherAn unknown threat actor exploited a publicly accessible Marimo instance via CVE-2026-39987 and then used an LLM agent for rapid post-compromise credential theft and internal DB exfiltration.
Vendor patch released
Technical analysis published
Added to CISA KEV catalog
Sourced from public security reporting — each date is when it was published, not when it happened. 6 further articles named this CVE in wider roundups without reporting it as a distinct event.
What it is
From the CVE record
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.
In plain language
Written by AI from the recordMarimo versions before 0.23.0 can let anyone on the network log in without credentials and run commands on the server—this is an immediate, high-risk issue if you use Marimo’s terminal feature.
CVE-2026-39987 is a pre-auth remote code execution in Marimo where the terminal WebSocket endpoint bypasses authentication checks, allowing unauthenticated attackers to establish a terminal session and execute arbitrary system commands.
If you're affected
- Full server takeover
- Malware installation and persistence
- Customer/workspace data theft
- Service downtime or destruction
Exploitation
Where each signal puts this CVE on the scale from published to confirmed exploited.
- CISA KEV
Listed as exploited in the wild since 2026-04-23.
US federal agencies must remediate by 2026-05-07.
Apply mitigations per vendor instructions, follow applicable BOD 22-01 guidance for cloud services, or discontinue use of the product if mitigations are unavailable.
- Public exploits
No public exploit or proof of concept found in the sources we track.
- EPSS
100% chance of exploitation activity in the next 30 days, which ranks it in the 99th percentile of scored CVEs.
Exploit Prediction Scoring System, FIRST.org. A probability, not a confirmation.
Lifecycle
16 events over 199 days, from the signal feeds we watch.
- EPSS band changemoderate → criticalepss band change
- EPSS band changecritical → moderate
- EPSS band changecritical → moderate
- EPSS band changecritical → moderateepss band change
- EPSS band changehigh → critical
- EPSS band changelow → high
Affected products
Technical detail
CVSS 3.1 vector
Open in the CVSS calculatorCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Scored 9.8 by NVD.
How it is reached
- Attack Vector NetworkExploitable remotely over the network without any special conditions
- Attack Complexity LowNo special conditions — the attack can be reliably reproduced
- Privileges Required NoneNo authentication required — anyone can exploit this
- User Interaction NoneNo user interaction needed — fully automated exploitation
Scope
- Scope UnchangedImpact is limited to the vulnerable component itself
Impact if exploited
- Confidentiality HighTotal information disclosure — all data in the component is compromised
- Integrity HighTotal loss of integrity — attacker can modify any data in the component
- Availability HighTotal denial of service — the component is completely unavailable
Weaknesses
ATT&CK techniques
Mapped from the weaknesses above (CWE to ATT&CK), not observed in attacks.
Sources
References in the record
- suse.com/security/cve/CVE-2025-39987.html&
- github.com/marimo-team/marimo/security/advisories/GHSA-2679-6mx9-h9xc&
- github.com/marimo-team/marimo/pull/9098
And 6 more references. See all after sign-in
Analysis on the cve.tools blog
In the news
All news- Human Attacker Exploits Marimo RCE, Reaches SSH Bastion in Eight Seconds
- Marimo Notebook Flaw Could Run MCP Commands Before Cells Execute in Edit Mode
- CISA Flags Langflow RCE, Tomcat, and N-central Flaws as Actively Exploited
- Китайский хакер использовал DeepSeek для проведения автономных атак
- Chinese Hacker Commands DeepSeek via Telegram to Launch Autonomous Attacks
- ThreatsDay: AI-Powered Hacking, 370 Chrome Flaws, SonicWall Attacks, DNS Hijacking + 22 More Stories
- Chinese-Speaking Threat Actor Harnesses AI Models for Autonomous Cyberattacks
- New NadMesh Botnet Hunts Exposed AI Services for Cloud Keys and Kubernetes Tokens
- Researchers Build Self-Replicating AI Worm That Operates Entirely on Local, Open-Weight Models
- Attackers Use LLM Agent for Post-Exploitation After Marimo CVE-2026-39987 Exploit
Watch the software you run.
My Stack ranks new CVEs for your products by real-world exploitation, so the next exploited one reaches you without reading every advisory.
We'll flag the next CVE, public exploit or patch for Marimo, not every advisory. This one: actively exploited.
A free account adds
- The full version matrix and every affected product
- Exploit links, proofs of concept and Metasploit modules
- Email alerts for the products you watch
- The same data over REST API, MCP and CLI