{"cve_id":"CVE-2026-39987","published":"2026-04-09T18:17:02.807000+00:00","last_modified":"2026-06-17T10:42:51.460000+00:00","vuln_status":"Analyzed","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_version":"3.1","cvss_vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","base_score":9.8,"base_severity":"CRITICAL","attack_vector":"NETWORK","privileges_req":"NONE","user_interaction":"NONE","scope":"UNCHANGED","impact_c":"HIGH","impact_i":"HIGH","impact_a":"HIGH","cwe_ids":["CWE-306"],"in_kev":true,"kev_date_added":"2026-04-23","kev_ransomware":false,"epss_score":0.99564,"epss_percentile":0.99947,"cap_rule_version":"0.1.1","stage":"INITIAL_ACCESS","req_access":"NONE","req_vector":"NETWORK","req_user_interaction":false,"grant_access":"USER","caps":["AUTH_BYPASS","CODE_EXEC"],"terminal":false,"cap_confidence":"high","ingested_at":"2026-10-07T06:56:13.599232+00:00","first_seen":"2026-04-09T18:17:02.807000+00:00","kev_first_seen":"2026-04-23T00:00:00+00:00","novelty_score":53.56,"novelty_reasons":["EPSS_SPIKE","HIGH_LEVERAGE_STEPPING_STONE"],"novelty_at":"2026-11-02T03:21:44.260683+00:00","vendors":["coreweave"],"products":["marimo"],"affected":[{"vendor":"coreweave","product":"marimo","ranges":["< 0.23.0"]}]}