Критическая уязвимость CVE-2026-39987 (CVSS 9.3) в интерактивных ноутбуках Marimo — предаутентификационное удалённое выполнение кода через WebSocket-эндпоинт терминала — внесена в каталог CISA KEV с крайним сроком устранения 7 мая 2026 года. По данным Sysdig, квалифицированный человек-оператор, используя собственный Python-инструментарий без какого-либо ИИ-агента, прошёл полную цепочку от уязвимого ноутбука до SSH-бастиона за восемь секунд — скорость, которую исследователи ранее ассоциировали исключительно с автоматизированными атаками. Уязвимость затрагивает версии Marimo ниже 0.23.0; патч доступен. Мы уже писали об уязвимостях в Marimo ранее.
Техническая суть уязвимости
Согласно рекомендации GitHub Advisory, CVE-2026-39987 классифицируется как CWE-306 — отсутствие аутентификации для критической функции. Эндпоинт /terminal/ws в Marimo принимает WebSocket-соединения без проверки подлинности, предоставляя неаутентифицированному атакующему полноценную интерактивную оболочку (PTY) и возможность произвольного выполнения команд.
Следует отметить расхождение в данных об уязвимых версиях: поле пакета в рекомендации GitHub указывает версии ниже 0.23.0 как затронутые, тогда как детальный раздел того же документа называет Marimo ≤ 0.20.4. Версия 0.23.0 указана как исправленная.
Анатомия атаки: девять часов, 850 команд, ноль публичных инструментов
По данным Sysdig (через их исследование), цепочка атаки развернулась следующим образом:
- 18:57:22 — установлено WebSocket-соединение с уязвимым эндпоинтом
- 18:57:26 — извлечены учётные данные AWS из хранилища приложения
- 18:57:30 — SSH-аутентификация на бастионном хосте с использованием закрытого ключа из AWS Secrets Manager
Восемь секунд от первого подключения до полного контроля над бастионом. Как сообщает Sysdig, оператор использовал единственный фоновый вызов Python3, который в одном скрипте извлекал учётные данные, получал SSH-ключ из Secrets Manager, записывал его на диск и аутентифицировался на бастионе.
За девятичасовую сессию (с 12:52 до 21:50) атакующий выполнил более 850 интерактивных команд, не применив ни одного известного публичного наступательного инструмента. Все скрипты были написаны и отлажены вручную прямо в сессии. Sysdig особо подчёркивает: оператор обошёл ловушку, в которую попадал каждый профилированный ими автономный ИИ-агент при атаке на ту же уязвимость.
Источник первоначального подключения — IP-адрес 172.236.12[.]17. В ходе сессии атакующий развернул слушатель в стиле asyncssh на собственном VPS.
Контекст: ИИ ускоряет атаки, но не заменяет мастерство
Этот инцидент иллюстрирует важный тезис: хотя ИИ-инструменты сокращают время от обнаружения уязвимости до её эксплуатации и снижают порог входа для менее квалифицированных злоумышленников, опытные операторы способны действовать на той же скорости без автоматизации — и при этом эффективнее обходить защитные механизмы. Как отмечает Sysdig, ИИ меняет экономику атак (больше целей, быстрее эксплуатация, меньше рутины), но пока не заменил квалифицированного атакующего, умеющего создавать инструменты с нуля и избегать ловушек.
Параллельные кампании: Redis и Dahua
Криптомайнинг через Redis
Параллельно с событиями вокруг Marimo, Hunt.io раскрыла кампанию криптомайнинга, в ходе которой были скомпрометированы 3 562 сервера Redis из списка в 12 966 хостов, обнаруженных сканированием порта 6379. Среди предварительно отобранных серверов без аутентификации (2 342 хоста) уровень компрометации достиг 72,6%.
Жертвы работали на Redis версий от 2.8.17 (2015) до 7.2.0 (2023) и Linux от устаревших RHEL/CentOS 6 до актуальных ядер Ubuntu. Hunt.io указывает, что причиной массовой компрометации стало отсутствие аутентификации, а не уязвимость конкретной версии Redis.
Основной метод — команда SLAVEOF для подмены репликации (rogue replication), через которую на целевой сервер доставлялся майнер XMRig. Из четырёх опробованных техник только репликация сработала в масштабе: инъекция SSH-ключей через AOF и попытки выхода из песочницы MongoDB не дали результатов в 2 810 попытках. Цепочка компрометации WordPress была обнаружена, но не подтверждена в масштабе. Кампания не атрибутирована какой-либо известной группировке.
Индикаторы компрометации из исследования: IP-адреса 47.250.92[.]230, 34.166.99[.]116, 20.198.10[.]42, 188.245.99[.]156; домен pool.moneroocean[.]stream.
Operation CameraSwarm
По данным индекса блога Hunt.io, в рамках операции Operation CameraSwarm за 35 дней были скомпрометированы более 14 530 IP-камер Dahua на территории Украины и России. Атака использовала брутфорс и уязвимости обхода аутентификации CVE-2021-33044 и CVE-2021-33045 (обе — CVSS 9.8, CWE-287), а также технику P2P-ретрансляции. Обе уязвимости Dahua внесены в каталог CISA KEV с августа 2024 года.
Оценка воздействия
Наибольшему риску от CVE-2026-39987 подвержены организации, использующие Marimo для интерактивных вычислений в облачных средах, особенно при наличии доступа к AWS Secrets Manager с того же инстанса. Цепочка «WebSocket → учётные данные → SSH-бастион» демонстрирует, как единственная уязвимость в инструменте для работы с данными может привести к полной компрометации облачной инфраструктуры.
Кампания против Redis подчёркивает масштаб проблемы открытых баз данных без аутентификации: 72,6% незащищённых серверов были скомпрометированы.
Рекомендации
- Marimo: немедленно обновите до версии 0.23.0 или выше. Если обновление невозможно — заблокируйте доступ к эндпоинту
/terminal/wsна уровне сетевого контроля - AWS: проведите аудит инстансов, на которых работает Marimo, на предмет доступа к Secrets Manager. Ротируйте SSH-ключи и учётные данные AWS, хранящиеся в Secrets Manager, если инстанс был доступен извне
- Redis: включите аутентификацию (
requirepass), ограничьте сетевой доступ к порту 6379, отключите командуSLAVEOFчерезrename-command - Dahua: обновите прошивку устройств до версий, устраняющих CVE-2021-33044 и CVE-2021-33045, смените стандартные учётные данные
- Проверьте наличие указанных IOC в сетевых логах
Инцидент с Marimo — наглядная демонстрация того, что защитные стратегии, рассчитанные на обнаружение автоматизированных атак, недостаточны: квалифицированный оператор способен пройти от уязвимости до полного контроля за секунды, используя только собственный код и избегая типичных индикаторов. Приоритет — обновление Marimo до 0.23.0 и аудит цепочки доступа от вычислительных ноутбуков к секретам облачной инфраструктуры.