В Marimo обнаружили уязвимость внедрения кода высокой степени опасности CVE-2026-75149. Ей подвержены версии раньше 0.23.15. Специально подготовленный блокнот может содержать заданную злоумышленником команду сервера Model Context Protocol (MCP). Достаточно открыть такой файл в режиме редактирования, чтобы Marimo запустил команду как локальный подпроцесс. Ни одну ячейку при этом выполнять не требуется.
Сценарий атаки подробно описан в записи центра нумерации CVE VulnCheck (CNA) и импорте CVE проекта OSV. Злоумышленник помещает команду MCP-сервера в конфигурацию или метаданные блокнота, после чего передаёт файл жертве. При открытии в режиме редактирования приложение считывает настройки и запускает указанную команду. Код срабатывает раньше, чем пользователь решит выполнить первую ячейку, поэтому привычная осторожность вроде «посмотрю файл, но запускать ничего не буду» здесь не спасает.
Для эксплуатации необходимо действие пользователя: вредоносный блокнот нужно открыть. Аутентификация злоумышленнику не нужна. В записи VulnCheck уязвимость получила 8,7 балла по CVSS v4 и 8,8 балла по CVSS v3.1; уровень опасности обозначен как высокий. Последствия зависят от содержимого команды и прав процесса Marimo, поскольку она исполняется локально в среде жертвы.
Исправление вошло в Marimo 0.23.15, опубликованный 23 июля 2026 года. Саму CVE-2026-75149 опубликовали позже, 19 августа 2026 года. Все выпуски до 0.23.15 относятся к затронутому диапазону. На 25 августа 2026 года, по проверке The Hacker News, актуальной версией в PyPI была Marimo 0.24.0, вышедшая 17 августа 2026 года. Политика безопасности Marimo предусматривает выпуск исправлений для последней стабильной версии, поэтому разработчики советуют не задерживаться на старых сборках.
В патче усиления защиты PEP 723 метаданные блокнота рассматриваются как данные под контролем атакующего. Конфигурация, поступающая из самого файла, теперь проходит через список разрешённых параметров. Это меняет исходную модель доверия: блокнот больше не может бесконтрольно диктовать приложению чувствительные настройки. Запись VulnCheck отдельно фиксирует конкретное поведение CVE-2026-75149: запуск внедрённой команды как локального подпроцесса.
Обнаружение уязвимости приписано Gregory Tan, использующему псевдоним Grg0rry. Тот же Grg0rry указан среди соавторов коммита Marimo, усиливающего обработку PEP 723. Получилась довольно прямая цепочка: исследователь нашёл небезопасную границу доверия и участвовал в её исправлении.
С той же границей конфигурации связана отдельная уязвимость CVE-2026-67618 с оценкой 7,1 балла CVSS. Сведения о ней раскрыли 4 августа 2026 года; затронуты также версии Marimo раньше 0.23.15. Вредоносный блокнот способен передать через метаданные подконтрольный атакующему адрес AI-провайдера в параметре base_url. Когда оператор позднее отправляет запрос к системе искусственного интеллекта, его API-ключ уходит на этот адрес. Выполнять ячейки для утечки опять-таки не нужно.
Разница между двумя дефектами существенна. CVE-2026-75149 позволяет запустить заданную атакующим MCP-команду на машине пользователя, тогда как CVE-2026-67618 перенаправляет AI-запрос и раскрывает API-ключ постороннему серверу. Общий источник риска один: настройки внутри полученного блокнота прежде могли пересечь границу доверия ещё до исполнения его программного содержимого.
Ранее Marimo устранял другой дефект, CVE-2026-39987. По данным собственного бюллетеня Marimo, endpoint /terminal/ws не выполнял надлежащую проверку аутентификации. Достигший этого адреса запрос мог получить полноценную оболочку псевдотерминала PTY, а затем исполнять произвольные команды. Уязвимость затрагивала Marimo 0.20.4 и более ранние версии; исправленной указана версия 0.23.0. Она не относится к механизму запуска MCP-команд через метаданные.
Практическая мера для владельцев установок одна: заменить любую версию раньше 0.23.15 выпуском за пределами уязвимого диапазона, предпочтительно последним стабильным. До обновления недоверенные блокноты нельзя открывать в режиме редактирования даже ради просмотра кода. В случае Marimo сам факт открытия файла мог означать запуск процесса или подготовку утечки API-ключа задолго до щелчка по кнопке выполнения ячейки.
Сценарий атаки подробно описан в записи центра нумерации CVE VulnCheck (CNA) и импорте CVE проекта OSV. Злоумышленник помещает команду MCP-сервера в конфигурацию или метаданные блокнота, после чего передаёт файл жертве. При открытии в режиме редактирования приложение считывает настройки и запускает указанную команду. Код срабатывает раньше, чем пользователь решит выполнить первую ячейку, поэтому привычная осторожность вроде «посмотрю файл, но запускать ничего не буду» здесь не спасает.
Для эксплуатации необходимо действие пользователя: вредоносный блокнот нужно открыть. Аутентификация злоумышленнику не нужна. В записи VulnCheck уязвимость получила 8,7 балла по CVSS v4 и 8,8 балла по CVSS v3.1; уровень опасности обозначен как высокий. Последствия зависят от содержимого команды и прав процесса Marimo, поскольку она исполняется локально в среде жертвы.
Исправление вошло в Marimo 0.23.15, опубликованный 23 июля 2026 года. Саму CVE-2026-75149 опубликовали позже, 19 августа 2026 года. Все выпуски до 0.23.15 относятся к затронутому диапазону. На 25 августа 2026 года, по проверке The Hacker News, актуальной версией в PyPI была Marimo 0.24.0, вышедшая 17 августа 2026 года. Политика безопасности Marimo предусматривает выпуск исправлений для последней стабильной версии, поэтому разработчики советуют не задерживаться на старых сборках.
В патче усиления защиты PEP 723 метаданные блокнота рассматриваются как данные под контролем атакующего. Конфигурация, поступающая из самого файла, теперь проходит через список разрешённых параметров. Это меняет исходную модель доверия: блокнот больше не может бесконтрольно диктовать приложению чувствительные настройки. Запись VulnCheck отдельно фиксирует конкретное поведение CVE-2026-75149: запуск внедрённой команды как локального подпроцесса.
Обнаружение уязвимости приписано Gregory Tan, использующему псевдоним Grg0rry. Тот же Grg0rry указан среди соавторов коммита Marimo, усиливающего обработку PEP 723. Получилась довольно прямая цепочка: исследователь нашёл небезопасную границу доверия и участвовал в её исправлении.
С той же границей конфигурации связана отдельная уязвимость CVE-2026-67618 с оценкой 7,1 балла CVSS. Сведения о ней раскрыли 4 августа 2026 года; затронуты также версии Marimo раньше 0.23.15. Вредоносный блокнот способен передать через метаданные подконтрольный атакующему адрес AI-провайдера в параметре base_url. Когда оператор позднее отправляет запрос к системе искусственного интеллекта, его API-ключ уходит на этот адрес. Выполнять ячейки для утечки опять-таки не нужно.
Разница между двумя дефектами существенна. CVE-2026-75149 позволяет запустить заданную атакующим MCP-команду на машине пользователя, тогда как CVE-2026-67618 перенаправляет AI-запрос и раскрывает API-ключ постороннему серверу. Общий источник риска один: настройки внутри полученного блокнота прежде могли пересечь границу доверия ещё до исполнения его программного содержимого.
Ранее Marimo устранял другой дефект, CVE-2026-39987. По данным собственного бюллетеня Marimo, endpoint /terminal/ws не выполнял надлежащую проверку аутентификации. Достигший этого адреса запрос мог получить полноценную оболочку псевдотерминала PTY, а затем исполнять произвольные команды. Уязвимость затрагивала Marimo 0.20.4 и более ранние версии; исправленной указана версия 0.23.0. Она не относится к механизму запуска MCP-команд через метаданные.
Практическая мера для владельцев установок одна: заменить любую версию раньше 0.23.15 выпуском за пределами уязвимого диапазона, предпочтительно последним стабильным. До обновления недоверенные блокноты нельзя открывать в режиме редактирования даже ради просмотра кода. В случае Marimo сам факт открытия файла мог означать запуск процесса или подготовку утечки API-ключа задолго до щелчка по кнопке выполнения ячейки.