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.
| Vendor | Product | Versions |
|---|---|---|
| pypa | marimo | pip/marimo: < 0.23.0 |
Updated severity to CRITICAL, marked as actively exploited, and provided a new description with details about CVE-2026-39987.
Initial creation