
Эксплойт 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 | 🚀 Интерактивное выполнение | Перейти в живую оболочку — каждая команда выполняется на целевом хосте |
--transport http на каком-либо сетевом интерфейсе — придерживайтесь транспорта stdio по умолчанию127.0.0.1 и разместите за аутентифицирующим обратным прокси или VPNrun-code и необычные дочерние процессыДанный инструмент предоставляется только для авторизованного тестирования безопасности и образовательных целей.
Несанкционированный доступ к компьютерным системам является незаконным в соответствии с такими законами, как Computer Fraud and Abuse Act (CFAA), Computer Misuse Act и аналогичным законодательством по всему миру. Автор не несёт никакой ответственности за неправомерное использование данного программного обеспечения.
Используйте этот инструмент только против систем, которыми вы владеете или на тестирование которых имеете явное письменное разрешение.
Автор: Phantom Hat
Только для авторизованного тестирования на проникновение и исследований в области безопасности.