CVE-2026-39987 Marimo Remote Code Execution

Exploited in the wild Critical 9.3 Published Updated

Unauthenticated attackers can execute arbitrary system commands via an unsecured terminal WebSocket endpoint in marimo notebooks.

Exploited in the wild
Since 23 Apr 2026
Login needed
Not needed
Attackable
Over the internet
Victim action needed
Not needed
Fix
Available

What is CVE-2026-39987?

CVE-2026-39987 is a critical authentication bypass vulnerability in marimo-team marimo, published on 9 Apr 2026. An attacker can exploit it over the internet without logging in, with no action from the victim.

Official 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.

Weakness: CWE-306

Which versions are affected by CVE-2026-39987?

3 open source packages ship an affected version, including marimo. It affects 1 product.

PackageAffectedFixed in
marimo PyPIAll versions0.23.0
marimo PyPIAll versions0.23.0
marimo PyPIAll versions0.23.0

Products include Coreweave Marimo.

How do I fix CVE-2026-39987?

Upgrade marimo to 0.23.0 or later. US federal agencies must fix it by 7 May 2026.

Upgrade, and rotate credentials and sessions that may have been exposed. More about Authentication bypass.

Is CVE-2026-39987 being exploited?

Yes. Attackers have exploited CVE-2026-39987 in the wild since at least 23 Apr 2026.

Public exploit code: 1 Exploit-DB entry, 1 Nuclei template and 29 proofs of concept on GitHub.

Sources

Also known as GHSA-2679-6mx9-h9xc, PYSEC-2026-407.

Is CVE-2026-39987 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free