Уязвимость CVSS 9.3 позволяет выполнять удалённый код без аутентификации на доступных извне серверах Marimo и была быстро использована в реальной среде, утверждает Sysdig
Критическая уязвимость удалённого выполнения кода до аутентификации в Marimo, open-source платформе Python notebook, принадлежащей AI cloud-компании CoreWeave, была использована в реальных атаках менее чем через 10 часов после публичного раскрытия, сообщили в Sysdig Threat Research Team.
Уязвимость, отслеживаемая как CVE-2026-39987 и получившая оценку 9,3 из 10 по шкале критичности, затрагивает все версии Marimo до 0.23.0.
Для эксплуатации не нужны вход в систему, похищенные учётные данные или сложный эксплойт. Злоумышленнику достаточно отправить один запрос соединения на конкретную конечную точку на доступном извне сервере Marimo, чтобы получить полный контроль над системой, написали исследователи Sysdig в блоге.
Уязвимость позволяет неаутентифицированному атакующему получить полноценную интерактивную оболочку и выполнять произвольные системные команды на любом доступном экземпляре Marimo через одно соединение, без каких-либо учётных данных, говорится в публикации.
«В Marimo есть уязвимость Pre-Auth RCE», — написала команда Marimo в своём GitHub security advisory. «Конечная точка Terminal WebSocket /terminal/ws не выполняет проверку аутентификации, что позволяет неаутентифицированному атакующему получить полноценную PTY-оболочку и выполнять произвольные системные команды».
Marimo — это реактивный notebook на Python, у которого около 20 000 звёзд на GitHub; CoreWeave приобрела проект в октябре 2025 года.
Как работает уязвимость
Сервер Marimo включает встроенную terminal-функцию, которая позволяет выполнять команды прямо из браузера. Этот terminal был доступен по сети без какой-либо проверки аутентификации, тогда как другие части того же сервера корректно требовали входа перед подключением, говорится в публикации.
«Конечная точка terminal полностью пропускает эту проверку, принимая соединения от любого неаутентифицированного пользователя и предоставляя полноценную интерактивную оболочку, работающую с правами процесса Marimo», — добавили авторы.
На практике любой, кто мог достучаться до сервера через интернет, мог сразу попасть в живую командную оболочку, часто с правами уровня администратора, ни разу не вводя пароль, заявили в Sysdig.
Учётные данные были похищены менее чем за три минуты
Чтобы отследить реальную эксплуатацию, исследователи развернули honeypot-серверы с уязвимыми экземплярами Marimo у нескольких облачных провайдеров и увидели первую попытку эксплуатации через 9 часов и 41 минуту после раскрытия. На тот момент готового инструмента для атаки не существовало. Нападавший собрал его сам, опираясь только на описание в advisory, написали исследователи Sysdig.
Атакующий действовал поэтапно в ходе четырёх сессий. Короткая первая сессия подтвердила, что уязвимость действительно эксплуатируема. Во второй сессии он вручную просматривал файловую систему сервера. К третьей сессии атакующий нашёл и прочитал environment-файл, содержащий AWS access keys и другие учётные данные приложения. Вся операция заняла меньше трёх минут, говорится в публикации.
«Это полная операция по краже учётных данных, выполненная менее чем за 3 минуты», — написала команда Sysdig.
Затем атакующий вернулся более чем через час, чтобы повторно проверить те же файлы. Такое поведение соответствовало действиям человека, который вручную проходит список целей, а не автоматического сканера, говорится в публикации.
Часть более широкой тенденции
Темп эксплуатации согласуется с тенденцией, наблюдаемой в AI и open-source tooling. Ранее в этом году критическая уязвимость в Langflow была превращена в оружие через 20 часов после раскрытия; её также отслеживала Sysdig. В случае Marimo этот промежуток сократился примерно вдвое, при том что на тот момент публичного эксплойт-кода ещё не было в обращении.
«Нишевое или менее популярное ПО — не значит более безопасное ПО», — говорится в посте Sysdig. Любое интернет-доступное приложение с опубликованным критическим advisory становится целью в течение нескольких часов после раскрытия, независимо от размера своей инсталляционной базы, добавили исследователи.
В случае Marimo на момент первой атаки ещё не был присвоен номер CVE, а значит, организации, полагающиеся на сканирование по CVE, вообще не выделили бы это предупреждение, отметили в Sysdig.
Уязвимость также укладывается в шаблон критических RCE-уязвимостей в смежных с AI инструментах для разработчиков — включая MLflow, n8n и Langflow, — где функции выполнения кода, созданные для удобства, становятся опасными при публикации в интернет без последовательного контроля аутентификации.
Что следует сделать организациям
Marimo выпустила исправленную версию 0.23.0, которая закрывает пробел в аутентификации в terminal endpoint. Организациям, использующим любую более раннюю версию, следует немедленно обновиться, заявили в Sysdig.
Командам, которые не могут обновиться сразу, следует заблокировать внешний доступ к серверам Marimo с помощью правил межсетевого экрана или поместить их за аутентифицированный proxy, говорится в публикации. Любой экземпляр, который был доступен извне, следует считать потенциально скомпрометированным.
«Учётные данные, хранившиеся на этих серверах, включая cloud access keys и API tokens, следует сменить в качестве меры предосторожности», — рекомендовали в Sysdig.
CoreWeave на запрос о комментарии оперативно не ответила.
Материал первоначально опубликован в CSO.
Материал — перевод статьи с английского.
Оригинал: Critical flaw in Marimo Python notebook exploited within 10 hours of disclosure
