CVE-2026-39987

marimo Affected by Pre-Auth Remote Code Execution via Terminal WebSocket Authentication Bypass

Basic Information

CVE State
PUBLISHED
Reserved Date
April 08, 2026
Published Date
April 09, 2026
Last Updated
April 24, 2026
Vendor
marimo-team
Product
marimo
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.
Tags
cisa nuclei_scanner

CVSS Scores

CVSS v4.0

9.3 - CRITICAL

Vector: 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

SSVC Information

Exploitation
active
Automatable
Yes
Technical Impact
total

Exploit Status

Exploited in the Wild
Yes (2026-06-01 13:23:39 UTC) Source

Known Exploited Vulnerability Information

Source Added Date
CVE 2026-06-01 13:23:39 UTC

Recent Mentions

Root in One Request: Pre-Auth RCE in Marimo (CVE-2026-39987)

Source: DarkWebInformer • Published: 2026-05-29 17:37:43 UTC

CVE-2026-39987 is a critical pre-authentication remote code execution flaw in Marimo, a popular open-source reactive Python notebook framework and a modern alternative to Jupyter with roughly 19.6k GitHub stars.

Attackers Use LLM Agent for Post-Exploitation After Marimo CVE-2026-39987 Exploit

Source: TheHackerNews • Published: 2026-05-29 14:39:56 UTC

An unknown threat actor has been observed using a large language model (LLM) agent to conduct post-compromise actions after obtaining initial access following the exploitation of a publicly-accessible Marimo network using a recently disclosed vulnerability. "The attacker compromised an internet-reachable Marimo notebook via CVE-2026-39987, extracted two cloud credentials from the compromised

Scanner Integrations

Timeline

  • CVE ID Reserved

  • CVE Published to Public

  • Added to KEVIntel

  • Detected by Nuclei