Критическая уязвимость в Marimo позволила злоумышленникам забирать ключи от облачных сервисов.

Хакерам хватило всего нескольких часов, чтобы превратить свежую уязвимость в рабочий инструмент для атак. Уже через десять часов после публикации информации о проблеме в платформе Marimo начались реальные попытки взлома.
В центре внимания – критическая уязвимость удалённого выполнения кода без авторизации в версиях Marimo 0.20.4 и более ранних. Проблема получила идентификатор CVE-2026-39987 и оценку по CVSS 9,3 из 10. Уязвимость затрагивает среду для работы с Python-ноутбуками, которую активно используют разработчики, специалисты по анализу данных и машинному обучению.
Причина кроется в конечной точке WebSocket «/terminal/ws», которая открывает интерактивный терминал без проверки доступа. Любой пользователь может подключиться и получить полноценную командную оболочку с теми же правами, что и у процесса Marimo.
Разработчики раскрыли проблему 8 апреля и на следующий день выпустили обновление 0.23.0 с исправлением. Уязвимость особенно опасна для тех, кто запускал Marimo в режиме редактирования и открывал доступ к сервису в сети с помощью параметра «--host 0.0.0.0». Специалисты Sysdig зафиксировали, что уже в первые 12 часов после публикации информации 125 IP-адресов начали проверять системы на наличие уязвимости. Первая реальная атака произошла менее чем через десять часов.
Сценарий оказался простым и быстрым. Сначала злоумышленник подключился к уязвимой точке и выполнил короткую последовательность команд, чтобы убедиться в возможности удалённого выполнения. Затем началась ручная разведка: команды вроде pwd, whoami и ls помогли понять структуру системы, после чего последовал поиск каталогов и файлов, связанных с SSH.
Главной целью стали учётные данные. Нападавший почти сразу нашёл файл .env и выгрузил переменные окружения, включая ключи облачных сервисов и секреты приложений. После этого проверил другие файлы в рабочем каталоге и попытался найти SSH-ключи. Весь этап кражи данных занял меньше трёх минут.
Примерно через час тот же злоумышленник вернулся и повторил атаку. Поведение указывает на ручную работу: без автоматизации, без установки скрытых программ или майнеров. Основная задача – быстро собрать ценные данные и уйти незаметно.
Пользователям Marimo советуют как можно скорее обновиться до версии 0.23.0, ограничить доступ к сервису из внешней сети, следить за подключениями к «/terminal/ws» и заменить все скомпрометированные ключи. Если обновление пока невозможно, лучше полностью закрыть доступ к уязвимой точке.