Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/keraattin/cve-2026-33032
РазведкаСканеры уязвимостейЭксплуатацияВеб-безопасностьСетевая безопасностьТестирование на ПроникновениеБезопасность API
GitHubkeraattin/cve-2026-33032

CVE-2026-33032

Одного пропущенного вызова функции при регистрации маршрута было достаточно, чтобы превратить интерфейс MCP в шлюз для неаутентифицированного удалённого выполнения кода (RCE).

Репозиторий
5445 месяцев назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

CVE-2026-33032 / MCPwn

CVE CVSS Status Affected License Python

Неразрушающий инструмент обнаружения для обхода аутентификации MCP в nginx-ui, известного публично как MCPwn. Позволяет за два HTTP-запроса без аутентификации получить полный контроль над любым экземпляром nginx-ui, работающим на уязвимой версии.

Содержание

  1. Краткие факты
  2. Обзор уязвимости
  3. Технический анализ
  4. Стратегия обнаружения
  5. Установка
  6. Использование
  7. Пример вывода
  8. Связка с CVE-2026-27944
  9. Устранение
  10. Ответственное использование
  11. Ссылки
  12. Лицензия

Краткие факты

ПолеЗначение
CVE IDCVE-2026-33032
ПсевдонимMCPwn
CVSS 3.19.8 / Критический (AV:N / AC:L / PR:N / UI:N / S:U / C:H/I:H/A:H)
CWECWE-306 Отсутствие аутентификации для критической функции
Затронутый продуктnginx-ui (github.com/0xjacky/nginx-ui)
Затронутые версииВсе версии до 2.3.4
Исправленная версия2.3.4
Статус эксплуатацииАктивная эксплуатация в дикой природе (Picus Security, Recorded Future)
Доступность в Shodan~2 689 экземпляров, доступных из интернета
Дата публикации2026-04-15

Обзор уязвимости

nginx-ui предоставляет интерфейс Model Context Protocol (MCP), который позволяет аутентифицированному оператору управлять разрушительными инструментами, такими как редактирование конфигурации nginx, команды перезапуска и операции резервного копирования, через JSON-RPC.

Конечная точка /mcp защищена промежуточным ПО AuthRequired(), в то время как её парная конечная точка /mcp_message, которая фактически принимает вызовы инструментов, была развёрнута без этого промежуточного ПО. Любой клиент, который может получить доступ к веб-интерфейсу по сети, может:

  1. Открыть поток Server Sent Events (SSE) к /mcp и получить новый sessionID без предъявления каких-либо учётных данных.
  2. Использовать этот sessionID для вызова любого зарегистрированного MCP-инструмента, отправив POST-запрос к /mcp_message, по-прежнему без аутентификации.

Атакующий получает полный контроль над процессом nginx: редактирует серверные блоки для перенаправления трафика, извлекает закрытые ключи TLS через чтение путей, перезагружает или останавливает nginx, а также внедряет постоянные бэкдоры.

Технический анализ

Первопричина на уровне кода

// уязвимая версия (до 2.3.4)
r.GET("/mcp",          AuthRequired(), mcpHandler)
r.POST("/mcp_message", mcpMessageHandler)    // отсутствует промежуточное ПО

// исправлено в 2.3.4
r.GET("/mcp",          AuthRequired(), mcpHandler)
r.POST("/mcp_message", AuthRequired(), mcpMessageHandler)

Одного пропущенного вызова функции при регистрации маршрута было достаточно, чтобы превратить интерфейс MCP в шлюз неаутентифицированного RCE.

Схема атаки от начала до конца

  Атакующий                              nginx-ui (<2.3.4)
     |   1) GET /mcp  (без аутентификации)     |
     | -------------------------------------->  |
     |   2) event: endpoint data: /mcp_message?sessionID=XYZ
     | <--------------------------------------  |
     |   3) POST /mcp_message?sessionID=XYZ     |
     |      тело: JSON-RPC call_tool "nginx_reload" или
     |             "edit_config {...}"          |
     | -------------------------------------->  |
     |   4) 200 OK; инструмент выполнен с полными привилегиями
     | <--------------------------------------  |

Матрица воздействия

MCP-инструментЭффект на сервер nginx
edit_configПерезапись произвольных серверных блоков, вставка апстрима атакующего
reload_nginxПрименение конфигурации атакующего без ручных действий
stop_nginxОтказ в обслуживании
read_fileЭкфильтрация закрытых ключей TLS, учётных данных из смонтированных путей
create_certПеревыпуск TLS-сертификатов под контролем атакующего
list_backups / downloadВыгрузка полной резервной копии nginx-ui, включая node_secret и хэши

Стратегия обнаружения

Этот репозиторий намеренно избегает любых разрушительных действий. Детектор использует только методы MCP, доступные для чтения (tools/list). Логика:

> Шаг 1  Определение nginx-ui через
>         GET /               (HTML-заголовок, JS-бандлы)
>         GET /api/settings   (JSON со ссылками на ключи nginx-ui)
>         Извлечение версии через заголовок / регулярное выражение в теле
> Шаг 2  Открытие SSE-потока к /mcp
>         Извлечение первого sessionID из события "endpoint"
> Шаг 3  POST /mcp_message?sessionID=<id>
>         Тело: {"jsonrpc":"2.0","method":"tools/list","params":{}}
>         Без заголовка Authorization
> Шаг 4  Уязвим, если статус 200 и тело содержит манифест инструментов
>         Исправлен, если статус 401 / 403 / 404
>         Неопределённо в остальных случаях

Почему это безопасно

Метод JSON-RPC tools/list доступен только для чтения. Он перечисляет, какие инструменты известны MCP-серверу, но не вызывает ни один из них. Скрипт отказывается отправлять любые другие методы и никогда не формирует полезные нагрузки для разрушительных инструментов.

Установка

git clone https://github.com/your-org/CVE-2026-33032-detector.git
cd CVE-2026-33032-detector
python3 --version      # 3.9 или новее
# Сторонние пакеты не требуются.

Для компонента Nmap NSE скопируйте nginx-ui-mcpwn.nse в локальный каталог скриптов и обновите базу данных скриптов:

cp nginx-ui-mcpwn.nse /usr/share/nmap/scripts/
sudo nmap --script-updatedb

Использование

Python-детектор

# Одиночная цель
python3 detect_nginx_ui_mcpwn.py --target https://nginx-ui.internal

# Массовое сканирование из файла
python3 detect_nginx_ui_mcpwn.py --targets targets.txt --workers 20

# Вывод в формате JSON (NDJSON), подходящий для передачи в jq
python3 detect_nginx_ui_mcpwn.py --target 10.0.0.5:9000 --json | jq .

Справочник по параметрам командной строки:

Скачать инструмент