FalehSec Exploited-vulnerability triage · joined from CISA KEV, NVD CVSS and EPSS

CVE-2026-39987

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

What an attacker can reach How likely Time What CISA says to do Sources All 545

What an attacker can reach

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 vectornetworkreachable over the network, with no local access needed
Privileges requirednoneneeds no credentials at all
User interactionnonecan be triggered with nobody interacting with the page or request
Base vectorCVSS: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
WeaknessCWE-306

This describes the vulnerability. It says nothing about whether your systems run it.

How likely

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 probability0.3786
Percentile0.985 — top 5%

Time

Added to KEV2026-04-23
Days exploited157
Federal remediation duenot set
Ransomware useno known ransomware campaign use

What CISA says to do

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.

Sources