marimo before 0.23.15 contains a configuration injection vulnerability that allows notebook authors to exfiltrate operator API keys by embedding a malicious base_url in PEP-723 inline script metadata, which is merged into session configuration with higher precedence than the operator's own settings due to insufficient sanitization in sanitize_pyproject_dict. When an operator opens the crafted notebook and makes an AI request, marimo resolves the attacker-controlled base_url from the notebook config while falling back to the operator's OPENAI_API_KEY environment variable for authentication, transmitting the API key to the attacker-controlled endpoint without requiring any cell execution.
| Version | Type | Source | Base | Exp | Imp |
|---|---|---|---|---|---|
| 3.1 | Primary | NVD | 6.5 | 2.8 | 3.6 |
| 3.1 | Primary | cve.org | 6.5 | — | — |
| 3.1 | Secondary | NVD | 6.5 | 2.8 | 3.6 |
| 4.0 | Primary | cve.org | 7.1 | — | — |
| 4.0 | Secondary | ENISA EUVD | 7.1 | — | — |
| 4.0 | Secondary | NVD | 7.1 | — | — |