Критическая уязвимость в популярной среди специалистов по данным и искусственному интеллекту платформе Marimo стала объектом активных атак менее чем через 10 часов после публикации официального предупреждения. Эксплуатация дефекта позволяет злоумышленникам без аутентификации получить полный интерактивный доступ к системе, что уже привело к хищению чувствительных данных в ходе реальных инцидентов. Эта ситуация наглядно демонстрирует, как стремительно сокращается "окно уязвимости" для организаций, вынуждая их пересматривать подходы к обновлению и защите даже нишевого программного обеспечения.
Уязвимость CVE-2026-39987
Суть инцидента и хронология. Восьмого апреля 2026 года в открытом репозитории GitHub было опубликовано предупреждение о безопасности GHSA-2679-6mx9-hx9c, позже получившее идентификатор CVE-2026-39987. Уязвимость, оцененная по шкале CVSS как критическая с баллом 9.3, затрагивала платформу для создания интерактивных Python-ноутбуков Marimo, которая позиционируется как современная реактивная альтернатива Jupyter. Дефект заключался в отсутствии проверки аутентификации на конечной точке WebSocket по пути "/terminal/ws" в версиях 0.20.4 и ранее. В отличие от других WebSocket-эндпоинтов приложения, этот пропускал вызов функции "validate_auth()", что позволяло любому удаленному пользователю установить соединение и получить полноценную интерактивную оболочку (shell) с правами процесса Marimo.
Уже через 9 часов и 41 минуту после публикации бюллетеня специалисты компании Sysdig, отслеживающие активность с помощью специальных ловушек (honeypot), зафиксировали первую попытку эксплуатации. Примечательно, что на тот момент в открытом доступе отсутствовал какой-либо готовый эксплойт или proof-of-concept (PoC, доказательство концепции). Злоумышленники смогли создать работоспособную атаку, опираясь исключительно на техническое описание в предупреждении. Это указывает на опасную тенденцию: для эксплуатации всё реже требуются сложные обратные разработки, достаточно детального описания уязвимости.
Механика атаки и её последствия. Анализ захваченных данных с ловушек Sysdig позволил восстановить ход атаки, которая развивалась с пугающей скоростью. Сначала злоумышленник выполнил автоматизированный скрипт для подтверждения возможности удалённого выполнения кода, отправив команду "id" между маркерами "---POC-START---" и "---POC-END---". Спустя две минуты оператор вручную подключился к скомпрометированной системе и начал исследование файловой системы, определив текущего пользователя и содержимое каталогов. Уже через три минуты после получения доступа атакующий обнаружил и извлёк файл ".env", содержащий высокочувствительные данные: учетные данные облачной инфраструктуры AWS, включая ключи доступа (access keys) и регион.
В реальных условиях эти данные открывают путь для латерального перемещения внутри облачной инфраструктуры жертвы, что может привести к катастрофическим последствиям - от утечки корпоративных данных до полного захвата контроля над цифровыми активами. В ходе дальнейшего исследования атакующий также искал SSH-ключи и пытался прочитать другие конфигурационные файлы, такие как "docker-compose.yml". Вся операция по хищению учетных данных заняла менее трёх минут, что подчёркивает высокую эффективность атаки при наличии интерактивной оболочки.
Контекст и выводы для рынка. Особенностью данного инцидента является цель атаки. Marimo, несмотря на свою растущую популярность в научной среде (около 20 000 звёзд на GitHub), остаётся относительно нишевым продуктом по сравнению с гигантами вроде Jupyter. Исторически массовые сканирующие кампании и быстрое создание эксплойтов фокусировались на более распространённом ПО. Однако этот случай доказывает, что злоумышленники теперь мониторят потоки предупреждений обо всех проектах и способны вооружить уязвимость в специализированном софте в считанные часы после её раскрытия. Эксперты предполагают, что для ускорения этого процесса атакующие всё активнее используют инструменты искусственного интеллекта для анализа технических описаний.
Этот инцидент вписывается в общую тревожную тенденцию стремительного сокращения времени между раскрытием уязвимости и началом её эксплуатации. Если в 2018 году медианное время составляло сотни дней, то к 2023 году почти половина уязвимостей начинала использоваться злоумышленниками в первые сутки. Уязвимость в Marimo, эксплуатируемая менее чем за 10 часов без публичного PoC, лишь подтверждает этот тренд. Более того, на момент первых атак уязвимости ещё не был присвоен номер CVE, что означает, что организации, полагающиеся исключительно на сканирование по базам CVE, оставались слепы к этой угрозе.
Рекомендации для специалистов по безопасности. В свете произошедшего защитникам необходимо действовать безотлагательно. Разработчики Marimo выпустили исправление в версии 0.23.0, и все развернутые экземпляры должны быть немедленно обновлены. Если обновление невозможно, требуется полностью заблокировать сетевой доступ к конечной точке "/terminal/ws" с помощью правил межсетевого экрана или отключить терминальную функциональность. Крайне важно провести аудит всех экземпляров Marimo, которые могли быть доступны из интернета, на предмет хранения чувствительных данных в переменных окружения или файлах ".env". Все обнаруженные облачные учётные данные, ключи API, пароли баз данных и SSH-ключи должны быть немедленно заменены.
Кроме реактивных мер, инцидент указывает на необходимость пересмотра проактивных стратегий. Любое интернет-ориентированное приложение, независимо от его распространённости, должно рассматриваться как потенциальная цель сразу после публикации критического бюллетеня. Командам безопасности необходимо расширить мониторинг источников предупреждений, выходя за рамки каталогов CVE и сосредоточившись также на репозиториях конкретных проектов. Инвентаризация всего программного обеспечения, особенно нишевых инструментов для data science, которые часто развертываются исследовательскими командами в обход стандартных процессов безопасности, становится критически важной. Наконец, сегментация сети и принцип минимальных привилегий для облачных учётных записей могут существенно ограничить ущерб даже в случае успешного проникновения, не оставляя атакующим шанса для простого перехода от скомпрометированного ноутбука к ключевой инфраструктуре.
Ссылки
- https://www.cve.org/CVERecord?id=CVE-2026-39987
- https://github.com/marimo-team/marimo/security/advisories/GHSA-2679-6mx9-h9xc
- https://github.com/marimo-team/marimo/pull/9098
- https://github.com/marimo-team/marimo/commit/c24d4806398f30be6b12acd6c60d1d7c68cfd12a
- https://www.sysdig.com/blog/marimo-oss-python-notebook-rce-from-disclosure-to-exploitation-in-under-10-hours