← Back to browse · API

CVE-2026-39987

Severity
CRITICAL
CVSS
9.3
EPSS
0.96576
Risk score
58.8
CISA KEV
Yes
PoC
Yes
Published
2026-04-09
Modified
2026-04-24
First seen
2026-08-07
Aliases
EUVD-2026-20980, GHSA-2679-6MX9-H9XC, PYSEC-2026-407
Products
Marimo:Marimo, marimo-team:marimo < 0.23.0
Sources
cisa.gov CVE-2026-39987
packetstorm c7220d3254e0a767e1e6c5a1|CVE-2026-39987
euvd EUVD-2026-20980
github c9e736daf1fdf0361406bfad|CVE-2026-39987
github 5133ffbea795fe0af2514bf7|CVE-2026-39987
github 37f80fefb6aba14e05acbe71|CVE-2026-39987
github e6fa23de50d6fa93b66dee21|CVE-2026-39987

Description

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.

References