What is CVE-2026-39987?
Critical pre-authentication remote code execution vulnerability in Marimo, an open-source reactive Python notebook platform (~20,000 GitHub stars). The terminal WebSocket endpoint at /terminal/ws in marimo/_server/api/endpoints/terminal.py performs no authentication check, unlike the primary /ws endpoint which invokes WebSocketConnectionValidator.validate_auth(). Any unauthenticated attacker can complete a WebSocket handshake and obtain a full interactive PTY shell executing commands as the Marimo process user — typically root in default Docker deployments. Active exploitation observed just 9 hours 41 minutes after the GitHub security advisory (GHSA-2679-6mx9-h9xc) was published on April 8, 2026. Threat actor from IP 49.207.56.74 conducted scripted PoC validation, manual filesystem reconnaissance, and targeted credential harvesting extracting .env files containing AWS API keys. Endor Labs found 30 of 186 internet-reachable instances (16%) accepted unauthenticated WebSocket handshakes. CISA added to KEV with remediation deadline of April 11, 2026. Fixed in Marimo v0.23.0 (PR #9098, commit c24d4806).
The record classifies CVE-2026-39987 under weakness class CWE-306. Its CVSS v3 base vector states that the flaw is reachable remotely over the network, needs no prior authentication, needs no user interaction, and has high impact on confidentiality, integrity, availability. 1 affected-product entry is recorded, across 1 vendor, listed below. The identifier was first published 204 days ago.
Severity and exploitation probability
- CVSS v3.1 base score
- 9.8 — CRITICAL
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - CVSS v4.0 base score
- 9.3
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 - EPSS (FIRST)
- 37.8% probability of exploitation in the next 30 days, higher than 98.5% of all scored CVEs
- CISA KEV
- Listed since 2026-04-09, federal remediation deadline 2026-04-11
- Threadlinqs priority
- 9/10 — CISA KEV-listed, which Threadlinqs floors at 9
- Published
- 2026-04-08, last modified 2026-04-24
Is CVE-2026-39987 being exploited?
CISA added CVE-2026-39987 to the Known Exploited Vulnerabilities catalog on 2026-04-09, which means the agency holds evidence of exploitation in the wild; US federal civilian agencies had to remediate it by 2026-04-11 under BOD 22-01. Weaponised exploit code for CVE-2026-39987 is publicly available. 11 public proof-of-concept repositories are tracked for this identifier. A ProjectDiscovery Nuclei detection template exists (javascript/cves/2026/CVE-2026-39987.yaml). It currently carries a trending score of 50 in the Threadlinqs vulnerability feed.
- Th3Purge/CVE-2026-39987 (github)
- M3PH1569/CVE-2026-39987-POC (github)
- keraattin/CVE-2026-39987 (github)
- Nxploited/CVE-2026-39987 (github)
- h3raklez/CVE-2026-39987 (github)
- rootdirective-sec/CVE-2026-39987-Lab (github)
- Wind010/CVE-2026-39987_PoC (github)
- Ghxstsec/CVE-2026-39987 (github)
Affected products and versions
- Marimo: Marimo
Affected software packages:
pip:marimo— patched in 0.23.0
How to fix CVE-2026-39987
The record marks a vendor fix as available for CVE-2026-39987. Fixed versions are recorded for 1 package: pip:marimo 0.23.0. Patch reference: https://github.com/marimo-team/marimo/pull/9098. Vendor advisory: https://github.com/marimo-team/marimo/security/advisories/GHSA-2679-6mx9-h9xc. Because CVE-2026-39987 is KEV-listed, US federal civilian agencies were required to apply the vendor fix, or stop using the product, by 2026-04-11. Apply the vendor fix referenced above to every affected product listed in this record, then confirm the running version against the vendor advisory.
Threat activity tracking CVE-2026-39987
5 tracked threats in the Threadlinqs corpus reference CVE-2026-39987, either in the campaign’s CVE list or as an indicator on the campaign record.
- CVE-2026-34486: Apache Tomcat EncryptInterceptor Bypass Actively Exploited in SnowLight and AI-Assisted Campaigns — HIGH · 2026-08-05
- NadMesh Botnet Hunts Exposed AI Services (ComfyUI, Ollama, n8n, Open WebUI, Langflow, Gradio) for Credentials and MCP Tool Access — HIGH · 2026-07-17
- Agentic Threat Actor Container Escape — AI Agent-Driven marimo CVE-2026-39987 RCE → Docker Socket → Host Breakout (nsenter) → Kubernetes Secret Store Dump (Sysdig TRT) — CRITICAL · 2026-06-06
- First AI-Agent-Driven Cloud Intrusion — Marimo CVE-2026-39987 RCE → AWS Secrets Manager → SSH Bastion → Internal PostgreSQL Exfiltration (Sysdig TRT, 2026-05-10) — HIGH · 2026-05-28
- Marimo Pre-Auth RCE via Unauthenticated WebSocket Terminal (CVE-2026-39987) — CRITICAL · 2026-04-12
Sources
Enriched from CVE.org, FIRST EPSS, CISA KEV, GitHub Security Advisories, public proof-of-concept repositories, ProjectDiscovery Nuclei. Last verified by Threadlinqs on .