Actively exploited · Published Apr 9, 2026 · Assigned by GitHub_M

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

Critical 9.3 Exploited

In plain English

A critical-severity missing authentication in marimo from marimo-team. Attackers are actively exploiting it in the wild (listed by CISA on April 23, 2026). The chance it is exploited in the next 30 days is estimated at 99.7% (higher than 99.9% of all known vulnerabilities). Ready-made attack tooling exists: Nuclei, public proof-of-concept code. Fixed versions are available - upgrade the affected package.

Severity (CVSS 4.0)9.3Critical
Exploit odds (30 days)99.7%top 0.0% of all CVEs
Exploited in the wildYesCISA KEV since Apr 23, 2026
Attack tooling2Nuclei, Public PoC

CISA guidance

Apply mitigations per vendor instructions, follow applicable BOD 22-01 guidance for cloud services, or discontinue use of the product if mitigations are unavailable.

Federal agencies must remediate by May 7, 2026.

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.

Affected packages & fixed versions

EcosystemPackageFixed inAdvisory
PyPImarimo0.23.0GHSA-2679-6mx9-h9xc
PyPImarimo0.23.0PYSEC-2026-407

Affected products (as reported)

VendorProductVersions
marimo-team marimo < 0.23.0

Weakness: CWE-306 · 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

References