Skip to main content
← All vulnerabilities
CVE-2026-39987PYSEC-2026-407GHSA-2679-6MX9-H9XC

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

Affects marimo 0.20.4 and earlier when run in edit mode; notebooks deployed as applications are not affected. Fixed in 0.23.0.

Published
Last modified
published
Listed in CISA KEV
Actively exploited
Fix
Fixed in 0.23.0
None on Exploit-DB, Metasploit or GitHub

Summary

marimo, a reactive Python notebook, is affected by a flaw that lets an unauthenticated attacker over the network open a full terminal session and run arbitrary system commands on the host without logging in. The impact is complete compromise of the system running the affected notebook server.

Summarized by anthropic/claude-haiku-5.5. Verify details against the original sources.

Read the original 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.

Timeline

  1. CVE published
  2. Added to CISA KEV

    CISA has evidence of exploitation in the wild

  3. Record last updated
  4. CISA remediation deadline

    Due date for US federal agencies to patch

  5. EPSS reached 10%

    FIRST estimates at least a 10% chance of exploitation in the next 30 days

Affected versions

  • marimo-team marimo

    fixed in 0.23.0

  • marimoPyPI

    fixed in 0.23.0

References 3

GitHub · marimo-team/marimo

FAQ

Questions about CVE-2026-39987

What does this mean?

The terminal WebSocket endpoint checks only the running mode and platform support before accepting connections, and it does not require authentication. A single WebSocket connection can give an unauthenticated party a full interactive root shell on the server.Source: github.com, github.com

Am I affected, and how do I check?

marimo 0.20.4 and earlier are affected, but only when the endpoint is reachable, which requires marimo to run in edit mode. Notebooks deployed as applications are not affected. To check, look at the installed marimo version and at how the notebook is launched.Source: github.com, github.com

What should I do about it?

Upgrade marimo to 0.23.0 or later, which is the listed fixed version.Source: github.com, github.com

Is it being exploited?

Yes. CISA added it to its Known Exploited Vulnerabilities catalog on 2026-04-23, which means it has evidence of attacks. No public exploit code is tracked.Source: cisa.gov, cve.now feed data