Skip to content
ImpactrStart an engagement
CVE-2026-39987 CISA KEV — actively exploited

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.

CVSS scoreCritical

9.3

EPSS — exploitation probabilityCritical

97.3%

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

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?

97.3% - meaning FIRST.org's EPSS model estimates a 97.3% 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.