{"cve":{"cve_id":"CVE-2026-39987","is_kev":true,"kev_date_added":"2026-04-23","kev_vendor_project":"Marimo","kev_product":"Marimo","kev_vulnerability_name":"Marimo Remote Code Execution Vulnerability","kev_short_description":"Marimo contains an pre-authorization remote code execution vulnerability, allowing an unauthenticated attacked to shell access and execute arbitrary system commands.","kev_required_action":"Apply mitigations per vendor instructions, follow applicable BOD 22-01 guidance for cloud services, or discontinue use of the product if mitigations are unavailable.","kev_due_date":"2026-05-07","kev_known_ransomware":false,"kev_notes":"https://github.com/marimo-team/marimo/security/advisories/GHSA-2679-6mx9-h9xc ; https://nvd.nist.gov/vuln/detail/CVE-2026-39987","kev_cwes":["CWE-306"],"epss_score":0.95645,"epss_percentile":0.9986,"epss_as_of":"2026-06-23","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.","published_at":"2026-04-09T17:16:55.639000Z","last_modified_at":null,"cvss_v3_score":null,"cvss_v3_vector":null,"cvss_v3_severity":null,"cvss_v4_score":9.3,"cvss_v4_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","cvss_v4_severity":"CRITICAL","ssvc_decision":null,"ssvc_exploitation":null,"ssvc_automatable":null,"ssvc_technical_impact":null,"cwes":["CWE-306"],"nvd_references":["https://github.com/marimo-team/marimo/security/advisories/GHSA-2679-6mx9-h9xc","https://github.com/marimo-team/marimo/pull/9098","https://github.com/marimo-team/marimo/commit/c24d4806398f30be6b12acd6c60d1d7c68cfd12a"],"vuln_status":null,"trending_score":0.6177707589814924,"is_trending":true,"has_trended":true,"trended_number_one":false,"trending_peak_score":0.6177707589814924,"trending_peak_rank":13,"started_trending_at":"2026-06-29T02:30:27.366045Z","trended_number_one_at":null,"summary_generated":null,"summary_generated_at":null,"summary_model":null,"created_at":"2026-06-24T00:09:31.350578Z","updated_at":"2026-06-29T02:30:27.550645Z"},"effective_severity":"CRITICAL","badges":["kev","poc","trending","epss"],"impact_analysis":[],"cvss_v3_decoded":{"version":null,"metrics":[]},"cvss_v4_decoded":{"version":"4.0","metrics":[{"metric":"AV","name":"Attack Vector","value":"N","value_label":"Network"},{"metric":"AC","name":"Attack Complexity","value":"L","value_label":"Low"},{"metric":"AT","name":"Attack Requirements","value":"N","value_label":"None"},{"metric":"PR","name":"Privileges Required","value":"N","value_label":"None"},{"metric":"UI","name":"User Interaction","value":"N","value_label":"None"},{"metric":"VC","name":"Confidentiality (Vulnerable System)","value":"H","value_label":"High"},{"metric":"VI","name":"Integrity (Vulnerable System)","value":"H","value_label":"High"},{"metric":"VA","name":"Availability (Vulnerable System)","value":"H","value_label":"High"},{"metric":"SC","name":"Confidentiality (Subsequent System)","value":"N","value_label":"None"},{"metric":"SI","name":"Integrity (Subsequent System)","value":"N","value_label":"None"},{"metric":"SA","name":"Availability (Subsequent System)","value":"N","value_label":"None"}]},"affected":[{"vendor_slug":"marimo-team","vendor_name":"marimo-team","product_slug":"marimo","product_name":"marimo","version_start":"< 0.23.0","version_start_inclusive":true,"version_end":"< 0.23.0","version_end_inclusive":true,"cpe23_uri":"cve5:marimo-team:marimo:< 0.23.0:< 0.23.0"}],"exploit_refs":[{"source":"nuclei","kind":"nuclei","url":"https://github.com/projectdiscovery/nuclei-templates/blob/main/javascript/cves/2026/CVE-2026-39987.yaml","title":"Marimo <= 0.20.4 - Pre-Auth Terminal WebSocket RCE","author":"ritikchaddha","disclosed_at":null}],"news":[],"references":[{"url":"https://github.com/marimo-team/marimo/security/advisories/GHSA-2679-6mx9-h9xc","source_type":"VENDOR_ADVISORY","tags":["advisory"]},{"url":"https://github.com/marimo-team/marimo/pull/9098","source_type":"PATCH","tags":["patch"]},{"url":"https://github.com/marimo-team/marimo/commit/c24d4806398f30be6b12acd6c60d1d7c68cfd12a","source_type":"PATCH","tags":["patch"]}],"timeline":[{"type":"published","at":"2026-04-09T17:16:55.639000Z","label":"CVE published","source":null},{"type":"cisa_reported","at":"2026-04-23T00:00:00Z","label":"Added to CISA KEV catalog","source":"kev"},{"type":"poc_available","at":"2026-06-24T00:29:48.638073Z","label":"Public PoC available","source":"nuclei"},{"type":"cvss_changed","at":"2026-06-28T17:53:39.415886Z","label":"CVSS score revised","source":"cvelistv5"},{"type":"cvss_changed","at":"2026-06-28T17:53:39.415886Z","label":"CVSS score revised","source":"cvelistv5"},{"type":"cvss_changed","at":"2026-06-28T17:53:39.415886Z","label":"CVSS score revised","source":"cvelistv5"},{"type":"started_trending","at":"2026-06-29T02:30:27.366045Z","label":"Started trending","source":null}]}