← back
CVE-2026-39987

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

CVSS 9.3 CRITICALEPSS 95.6%● KEVCWE-306
In short

marimo notebook application has a critical flaw where its terminal feature can be accessed without authentication, allowing attackers to run any command on the server. This bypasses all security protections that should prevent unauthorized access.

Technical detail

The /terminal/ws WebSocket endpoint lacks authentication validation, accepting unauthenticated connections that provide full PTY shell access. Unlike properly protected endpoints that invoke validate_auth(), this endpoint only verifies running mode and platform compatibility, enabling pre-authentication remote code execution on the underlying system.

Summary generated and translated by AI from the 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.
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
Affected products
marimo-team · marimo
⚠ Public resources, to assess the exposure of systems you control or are authorized to test. Test only with authorization.

Want to know if your infrastructure is exposed to this?

Talk to TrueHacking →