
Эксплойт proof-of-concept для CVE-2026-5029, обеспечивающий неаутентифицированное удалённое выполнение кода через MCP-инструмент run-code на открытых HTTP-эндпоинтах. Включает интерактивную оболочку, перечисление языков и разведку целей.
run-codePoC-эксплойт для CVE-2026-5029 — критическая уязвимость удалённого выполнения кода без аутентификации в Code Runner MCP Server, срабатывающая через MCP-инструмент
run-codeпри запуске сервера с--transport http.
| Свойство | Значение |
|---|---|
| Идентификатор CVE | CVE-2026-5029 |
| Оценка CVSS | 8.7 / 10 — Высокий |
| CWE | CWE-306 — Отсутствие аутентификации для критической функции |
| Затронутый продукт | Code Runner MCP Server |
| Затронутые версии | (Без исправления) Все версии, предоставляющие доступ к инструменту run-code через --transport http |
| Аутентификация | Не требуется (без аутентификации) |
| Статус исправления | Не исправлено |
| Обнаружил | Phantom Hat |
Code Runner MCP Server предоставляет JSON-RPC эндпоинт /mcp на порту 3088 при запуске с флагом --transport http. Этот эндпоинт доступен без какой-либо аутентификации — ни API-ключа, ни токена сессии, ни проверки источника (origin).
Любой удалённый злоумышленник, имеющий доступ к порту, может напрямую вызвать MCP-инструмент run-code, который принимает произвольный исходный код и идентификатор языка, записывает его во временный файл и выполняет через child_process.exec() с помощью соответствующего интерпретатора (bash, python, powershell и ещё 30+ других).
Поскольку ни на одном этапе к параметру code не применяется санитизация, это приводит к полному удалённому выполнению кода без аутентификации с правами процесса, запускающего MCP-сервер.
┌──────────┐ JSON-RPC tools/call ┌───────────────────────┐ exec() ┌──────────┐
│ Attacker │ ──── run-code tool ─────▶│ /mcp (port 3088) │ ─────────▶ │ RCE │
│ │ (no auth needed) │ Code Runner MCP │ │ on Host │
└──────────┘ └───────────────────────┘ └──────────┘
/mcp и перечисление доступных MCP-инструментовrun-code (code, languageId)tools/call с управляемым атакующим кодом codecode во временный файл и выполняет его через выбранный интерпретатор.
├── exploit.py # 🎯 Interactive RCE exploit shell (Rich-based terminal UI)
└── README.md # 📖 You are here
exploit.py — Интерактивный эксплойтОсновной скрипт эксплойта, созданный для профессионального применения в оценках безопасности и тематических исследованиях (case studies). Подключается к целевому MCP-серверу и открывает интерактивную оболочку, в которой любая команда выполняется в реальном времени через уязвимый инструмент run-code.
Возможности:
-l (по умолчанию — shellscript)pip# Clone the repository
git clone https://github.com/0x00phantom-hat/CVE-2026-5029-Exploit.git
cd CVE-2026-5029-RCE-Exploit
# Install dependencies
pip install fastmcp rich
# Drop into an interactive RCE shell (default: shellscript)
python3 exploit.py -u http://TARGET:3088/mcp
# Use a specific language interpreter
python3 exploit.py -u http://TARGET:3088/mcp -l python
# List all languages the MCP server advertises support for
python3 exploit.py -u http://TARGET:3088/mcp --available
# Probe which language runtimes are actually installed on the target
python3 exploit.py -u http://TARGET:3088/mcp --installed -v
# Show the help menu
python3 exploit.py -h
После подключения эксплойт переходит в интерактивное приглашение:
PhantomHat-MCP@Exploit-CVE-2026-5029 $ id
Введите exit, чтобы завершить сеанс.
| Flag | Описание | По умолчанию |
|---|---|---|
-u, --url | (Обязательно) URL MCP-сервера | — |
-l, --language | Язык, используемый для выполнения кода | shellscript |
-a, --available | Вывести все поддерживаемые языки | флаг |
-i, --installed | Проверить установленные на целевом хосте среды выполнения языков | флаг |
-v, --verbose | Подробный режим вывода | флаг |
-h, --help | Показать меню справки | — |
| Этап | Название | Описание |
|---|---|---|
| 1 | 🔍 Перечисление | Подключиться к /mcp и перечислить доступные MCP-инструменты |
| 2 | 🧪 Определение схемы | Подтвердить входную схему run-code (code, languageId) |
| 3 | 💣 Доставка эксплойта | Отправить специально сформированный запрос tools/call с управляемым атакующим кодом |
| 4 | 🚀 Интерактивное выполнение | Перейти в живую оболочку — каждая команда выполняется на целевом хосте |