Критическая уязвимость в популярном open-source блокноте для анализа данных Marimo продемонстрировала, насколько быстро сегодня атакующие реагируют на публичные уведомления о безопасности. По данным компании Sysdig, первая попытка эксплуатации CVE-2026-39987 была зафиксирована менее чем через 10 часов после публикации описания проблемы.
CVE-2026-39987: удалённое выполнение кода без аутентификации в Marimo
Уязвимость CVE-2026-39987 получила оценку 9,3 по шкале CVSS и затрагивает все версии Marimo до и включая 0.20.4. Разработчики устранили проблему в версии 0.23.0, поэтому обновление до этого релиза или выше является критически важным.
Суть уязвимости — в отсутствии проверки аутентификации на WebSocket-эндпойнте /terminal/ws. В то время как другие WebSocket‑маршруты (например, /ws) корректно вызывают функцию проверки validate_auth(), /terminal/ws ограничивается только проверкой режима работы и поддержки платформы и полностью пропускает этап валидации пользователя.
Это приводит к тому, что удалённый неаутентифицированный злоумышленник может установить WebSocket‑соединение с эндпойнтом терминала и получить полноценную PTY-оболочку на сервере. Иными словами, любая открытая в интернет инстанция Marimo с уязвимой версией фактически предоставляет атакующему интерактивный удалённый доступ к системе без каких-либо учётных данных.
Атака на honeypot Sysdig: эксплуатация через 9 часов 41 минуту
Sysdig развернула уязвимый инстанс Marimo в роли honeypot‑системы для наблюдения за реальными атаками. Первая зафиксированная попытка эксплуатации произошла через 9 часов 41 минуту после публичного раскрытия уязвимости, причём на тот момент в открытом доступе ещё не было готового proof‑of‑concept (PoC)‑эксплойта.
Неизвестный оператор подключился к WebSocket‑эндпойнту /terminal/ws, получил доступ к оболочке и начал ручную разведку: просматривал файловую систему, изучал структуру каталогов и искал потенциально чувствительные данные. Спустя несколько минут злоумышленник систематически попытался извлечь содержимое файла .env, найти SSH‑ключи и прочитать ряд других файлов с конфиденциальной информацией.
Через примерно час атакующий вернулся к honeypot‑системе, снова подключился к терминалу и проверил, были ли за это время активны другие злоумышленники, а также вновь обратился к содержимому .env. При этом не было зафиксировано загрузки майнеров криптовалюты, установки бэкдоров или других «громких» вредоносных нагрузок — действия были сосредоточены именно на кражe учётных данных и секретов.
По наблюдениям Sysdig, злоумышленник четыре раза подключался к терминалу в течение 90 минут, делая паузы между сессиями. Такой паттерн поведения характерен для ручной работы оператора, последовательно проходящего по списку целей и возвращающегося для проверки результатов.
Скорость эксплуатации уязвимостей: окно для защиты стремительно сужается
Факт, что атакующий смог создать рабочий эксплойт только по тексту официального уведомления, без готового PoC, подчёркивает тенденцию: профессиональным злоумышленникам достаточно минимального технического описания, чтобы оперативно разработать и применить инструмент атаки.
По оценкам ряда компаний в области кибербезопасности, медианное время между публичным раскрытием критической уязвимости и её массовой эксплуатацией уже сократилось с недель и дней до часов. При этом реальные циклы тестирования и развёртывания обновлений у многих организаций по‑прежнему измеряются сутками и дольше, что создаёт значительное окно уязвимости.
Малоизвестные open-source инструменты тоже в зоне риска
Инцидент с Marimo опровергает устоявшийся миф о том, что злоумышленники интересуются только самыми популярными и массово развернутыми платформами. Любое интернет‑доступное приложение с опубликованным критическим уведомлением по безопасности автоматически становится привлекательной целью, независимо от его рыночной доли или узнаваемости бренда.
Такие инструменты часто используются в исследовательских средах, лабораториях данных и DevOps‑инфраструктуре, где на одних и тех же серверах могут храниться ключи доступа к облакам, токены CI/CD, пароли к базам данных и другие высокоценные секреты. Поэтому даже точечный компромисс отдельного сервиса может привести к масштабной эскалации атаки.
Рекомендации администраторам Marimo и DevOps‑командам
Немедленное обновление. Всем пользователям Marimo необходимо в кратчайшие сроки обновиться как минимум до версии 0.23.0. Важно убедиться, что уязвимые контейнеры и старые образы не продолжают использоваться в тестовых и вспомогательных средах.
Ограничение сетевого доступа. Инстансы Marimo не должны быть напрямую доступны из интернета, если в этом нет строгой необходимости. Рекомендуется размещать сервис за реверс‑прокси, использовать VPN, списки разрешённых IP‑адресов и полноценную аутентификацию (SSO, OAuth, корпоративные IdP).
Минимизация поверхности атаки. Если функциональность терминала не используется, её стоит отключить или ограничить доступ только для администраторов. Любые административные WebSocket‑эндпойнты должны быть закрыты от внешних сетей.
Защита секретов. Инцидент показал, что первичной целью злоумышленника стали файлы .env и SSH‑ключи. Оптимальной практикой является хранение чувствительных данных в специализированных хранилищах секретов (Vault, KMS и т.п.) с минимальным количеством долгоживущих ключей и регулярной ротацией.
Мониторинг и реагирование. Организациям следует настраивать сбор и корреляцию логов WebSocket‑соединений, а также отслеживать аномальную активность терминалов и оболочек в облачных и контейнерных средах. При подозрении на компрометацию рекомендуется провести анализ журналов, отозвать скомпрометированные ключи и токены и выполнить форензик‑проверку системы.
Случай с CVE-2026-39987 в Marimo наглядно демонстрирует, что между публикацией критической уязвимости и её реальной эксплуатацией может пройти меньше десяти часов. Организациям важно выстраивать процессы оперативного управления уязвимостями, автоматизировать развёртывание патчей и регулярно пересматривать экспонированные в интернет сервисы. Чем меньше времени злоумышленник имеет для атаки и чем меньше секретов оказывается доступно с одного скомпрометированного сервиса, тем ниже вероятность серьёзных последствий для бизнеса.