ZeroHour

CVE-2026-75149

moderate

Code Injection in marimo Notebooks Executes Commands via Crafted MCP Server Entries

CVSS 4.0
8.7 high
EPSS
<1%p48
Published
()
Modified
AI analysis

marimo before 0.23.15 contains a code injection vulnerability (CWE-94) in its notebook configuration handler. An attacker crafts a notebook whose embedded configuration includes an MCP server entry with an attacker-controlled command value; when a victim opens that notebook in edit mode, marimo launches the specified command as a local subprocess before any notebook cell runs, requiring no authentication and no cell execution. Successful exploitation gives the attacker arbitrary command execution on the victim's machine with the privileges of the marimo process, reflected in the high CVSS 4.0 score of 8.7 (network vector, user interaction required to open the notebook). Anyone running an affected marimo version who opens shared or untrusted notebook files in edit mode is affected. No public proof-of-concept, KEV listing, or known in-the-wild exploitation is currently reported, and EPSS estimates a 0.6% probability of exploitation in the next 30 days.

What to do: Upgrade marimo to 0.23.15 or later. Until patched, avoid opening notebooks from untrusted sources in edit mode (prefer read/preview mode), and inspect the notebook configuration—especially MCP server entries and their command fields—in shared notebooks before opening them.

Affected
marimo (open-source project) marimobefore 0.23.15 (fixed in 0.23.15)
Estimated exposure
moderate≈ tens of thousands of users/installs (open-source Python notebook tool with modest adoption; only users opening untrusted notebooks in edit mode are exposed) — marimo is a newer, niche alternative to mainstream notebooks with an open-source user base plausibly in the tens of thousands, and actual exposure is limited to those who open attacker-supplied notebook files in edit mode rather than all…

Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.

Description

marimo before 0.23.15 contains a code injection vulnerability in the notebook configuration handler that allows attackers to execute arbitrary commands by supplying a crafted MCP server entry with an attacker-controlled command value embedded in a notebook. When the notebook is opened in edit mode, marimo launches the specified command as a local subprocess before any notebook cell is executed, requiring no authentication or cell execution to trigger the vulnerability.

Weakness
CWE-94
Vector
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X

In the news

Marimo Notebook Flaw Could Run MCP Commands Before Cells Execute in Edit Mode

Marimo notebook flaw CVE-2026-75149 (CVSS 8.7) allows attacker-supplied MCP commands to run as local subprocesses before any cell executes in edit mode.

Marimo addressed CVE-2026-75149, a high-severity code injection flaw allowing attacker-supplied Model Context Protocol (MCP) commands to execute as local subprocesses when a crafted notebook is opened in edit mode, before any cell runs. The issue affects versions prior to 0.23.15, carries CVSS v4 of 8.7 and CVSS v3.1 of 8.8, and requires user interaction but no authentication. Marimo fixed it in version 0.23.15 (released July 23, 2026) via a PEP 723 hardening patch that treats notebook metadata as attacker-controlled and strips ai, mcp, completion, secrets, and server configuration sections. VulnCheck's CNA also disclosed CVE-2026-67618 (CVSS 7.1), involving an attacker-controlled AI base_url that exfiltrates operator API keys, and earlier CVE-2023-39987, a missing auth on /terminal/ws endpoint allowing full PTY shell access.