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.
Is CVE-2026-39987 exploited?
Listed in the CISA KEV catalog on 2026-04-23.
Federal remediation due 2026-05-07.
Past that date by 100 days.
EPSS puts exploitation in the next 30 days at 97%.
Public exploit code: none found in monitored sources.