Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2026-33032 — 路由注册时缺失的一个函数调用,就足以将 MCP 接口变成未认证的 RCE 网关。 | Kitploit
工具/GitHubGitHub/keraattin/cve-2026-33032
侦察漏洞扫描器漏洞利用Web安全网络安全渗透测试API 安全
GitHubkeraattin/cve-2026-33032

CVE-2026-33032

路由注册时缺失的一个函数调用,就足以将 MCP 接口变成未认证的 RCE 网关。

查看仓库
54个月前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2026-33032 / MCPwn

CVE CVSS Status Affected License Python

针对 nginx-ui MCP 认证绕过漏洞(公开名称为 MCPwn)的非破坏性检测工具。通过两次 HTTP 请求即可在未认证的情况下完全接管任何运行受影响版本的 nginx-ui 实例。

目录

  1. 快速概览
  2. 漏洞概述
  3. 技术深入分析
  4. 检测策略
  5. 安装
  6. 使用方法
  7. 输出示例
  8. 与 CVE-2026-27944 联动
  9. 修复建议
  10. 负责任使用
  11. 参考资料
  12. 许可证

快速概览

漏洞概述

nginx-ui 暴露了一个模型上下文协议(MCP)接口,允许经过认证的操作员通过 JSON-RPC 驱动破坏性工具,例如 nginx 配置编辑、重启命令和备份操作。

/mcp 端点由 AuthRequired() 中间件保护,而其配对的 /mcp_message 端点(实际接收工具调用的端点)在部署时没有该中间件。任何能够通过网络访问该 UI 的客户端都可以:

  1. 向 /mcp 打开一个服务器发送事件(SSE)流,并在不提供任何凭据的情况下获取一个新的 sessionID。
  2. 使用该 sessionID 通过向 /mcp_message 发送 POST 请求来调用任何已注册的 MCP 工具,仍然无需认证。

攻击者获得对 nginx 进程的完全控制:编辑服务器块以重定向流量、通过路径读取提取 TLS 私钥、重新加载或停止 nginx,以及植入持久性后门。

技术深入分析

代码级根本原因

root@kitploit:~
// 存在漏洞(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 网关。

端到端攻击流程示意

root@kitploit:~
  攻击者                              nginx-ui (<2.3.4)
     |   1) GET /mcp  (无需认证)                |
     | -------------------------------------->  |
     |   2) event: endpoint data: /mcp_message?sessionID=XYZ
     | <--------------------------------------  |
     |   3) POST /mcp_message?sessionID=XYZ     |
     |      body: JSON-RPC call_tool "nginx_reload" 或
     |             "edit_config {...}"          |
     | -------------------------------------->  |
     |   4) 200 OK; 工具以完全权限执行
     | <--------------------------------------  |

影响矩阵

检测策略

本仓库有意避免任何破坏性操作。检测器仅使用只读的 MCP 方法(tools/list)。逻辑如下:

root@kitploit:~
> 步骤 1  通过以下方式识别 nginx-ui:
>         GET /               (HTML 标题, JS 包)
>         GET /api/settings   (引用 nginx-ui 键的 JSON)
>         通过 header / body 正则表达式提取版本
> 步骤 2  向 /mcp 打开 SSE 流
>         从 "endpoint" 事件中解析第一个 sessionID
> 步骤 3  POST /mcp_message?sessionID=<id>
>         Body: {"jsonrpc":"2.0","method":"tools/list","params":{}}
>         无 Authorization header
> 步骤 4  如果状态码为 200 且 body 包含工具清单,则存在漏洞
>         如果状态码为 401 / 403 / 404,则已修复
>         其他情况则无法确定

为什么这是安全的

tools/list JSON-RPC 方法是只读的。它枚举 MCP 服务器已知的工具,但不会调用其中任何一个。该脚本拒绝 POST 任何其他方法,并且永远不会为破坏性工具构造 payload。

安装

root@kitploit:~
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 复制到本地脚本目录并刷新脚本数据库:

root@kitploit:~
cp nginx-ui-mcpwn.nse /usr/share/nmap/scripts/
sudo nmap --script-updatedb

使用方法

Python 检测器

root@kitploit:~
# 单个目标
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 .

命令行参数参考:

Nmap NSE

root@kitploit:~
nmap -p 80,443,9000 --script nginx-ui-mcpwn 10.0.0.0/24
nmap -p 443 --script nginx-ui-mcpwn --script-args "nginx-ui-mcpwn.timeout=8" host.example.com

输出示例

人类可读格式

root@kitploit:~
 _   _       _                  _    _  ___   __  __  ____ ____
| \ | | __ _(_)_ __ __  __     | |  | ||_ _| |  \/  |/ ___|  _ \__      ___ __
|  \| |/ _` | | '_ \\ \/ /_____| |  | | | |  | |\/| | |   | |_) \ \ /\ / / '_ \
| |\  | (_| | | | | |>  <|_____| |__| | | |  | |  | | |___|  __/ \ V  V /| | | |
|_| \_|\__, |_|_| |_/_/\_\     |_____|_||___| |_|  |_|\____|_|     \_/\_/ |_| |_|
       |___/

  CVE-2026-33032 nginx-ui MCPwn 检测器 > 非破坏性

[!] 存在漏洞 https://nginx-ui.internal version=2.3.2 evidence=status=200; body_preview={"jsonrpc":"2.0","id":"...","result":{"tools":[{"name":"edit_config",...
[+] 已修复 https://nginx-ui-patched:9000 version=2.3.4 evidence=status=401; body_preview={"error":"unauthorized"}
[.] 非 nginx-ui https://example.com evidence=fingerprint negative

摘要: 1/3 个目标被标记为存在漏洞

NDJSON

root@kitploit:~
{"target":"https://nginx-ui.internal","reachable":true,"is_nginx_ui":true,"mcp_endpoint_present":true,"session_id_obtained":true,"mcp_message_unauthenticated":true,"vulnerable":true,"nginx_ui_version":"2.3.2","evidence":"status=200; body_preview=...","error":null}

Nmap

root@kitploit:~
PORT     STATE SERVICE
9000/tcp open  http
| nginx-ui-mcpwn:
|   status: VULNERABLE
|   version: 2.3.2
|   session_id: abc123
|_  evidence: tools/list accepted without credentials

与 CVE-2026-27944 联动

CVE-2026-27944(未认证的 /api/backup 下载漏洞,会在 X-Backup-Security header 中泄露 AES 密钥)可以与 MCPwn 无缝联动:备份归档会暴露 node_secret,即使在 33032 的修复落地之后,在运维人员轮换该密钥之前,该密钥仍可用于向 /mcp 进行认证。

针对 27944 的配套检测器位于本研究项目的同级目录中。

修复建议

  1. 将 nginx-ui 升级到 2.3.4 或更高版本。
  2. 轮换 node_secret、管理员密码哈希以及任何 nginx-ui 进程可访问的 TLS 私钥。
  3. 将 nginx-ui 的暴露范围限制在管理 VLAN、VPN 或反向代理内,确保在 /mcp_message 路由可达之前强制执行认证。
  4. 审查 nginx 配置历史(Git 或备份),检查在暴露窗口期内是否引入了意外的 upstream / proxy_pass / ssl_certificate 指令。

负责任使用

发布此工具是为了帮助防御者在他们被授权测试的环境中识别未修补的实例。请勿将其用于您不拥有或未经明确许可评估的系统。作者对滥用行为不承担任何责任。

参考资料

  • NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-33032
  • Picus Security (MCPwn 分析文章): https://www.picussecurity.com/resource/blog/cve-2026-33032-mcpwn-how-a-missing-middleware-call-in-nginx-ui-hands-attackers-full-web-server-takeover
  • Security Affairs: https://securityaffairs.com/190841/hacking/cve-2026-33032-severe-nginx-ui-bug-grants-unauthenticated-server-access.html
  • BleepingComputer: https://www.bleepingcomputer.com/news/security/critical-nginx-ui-auth-bypass-flaw-now-actively-exploited-in-the-wild/
  • 上游项目: https://github.com/0xjacky/nginx-ui

许可证

根据 MIT 许可证发布。各脚本文件头中提供了逐文件的声明。

下载工具
字段值
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
MCP 工具对 nginx 服务器的影响
edit_config重写任意服务器块,插入攻击者控制的 upstream
reload_nginx无需人工操作即可应用攻击者配置
stop_nginx拒绝服务
read_file从挂载路径窃取 TLS 私钥、凭据
create_cert在攻击者控制下重新签发 TLS 证书
list_backups / download拉取整个 nginx-ui 备份,包括 node_secret 和哈希
参数用途
--target单个 URL 或 host[:port]
--targets换行分隔的目标文件
--timeoutHTTP 超时时间,默认 10 秒
--workers批量扫描的并发工作线程数,默认 10
--verify-tls强制 TLS 证书验证(默认关闭)
--json输出 NDJSON,每个目标一条记录
--no-banner隐藏 ASCII 横幅