技术说明
nginx-ui 的模型上下文协议 (MCP) 集成中的关键身份验证绕过漏洞允许远程攻击者调用 12 个特权 MCP 工具中的任何一个——包括配置写入和自动 nginx 重载——无需身份验证。该漏洞的产生是因为 /mcp_message 端点仅应用 IP 白名单(默认:允许全部)而省略了身份验证检查。攻击者可以通过两个未经身份验证的 HTTP 请求实现完全的 nginx 服务器接管。该漏洞被 Pluto Security 命名为 'MCPwn',VulnCheck 和 Recorded Future 的 Insikt Group 于 3 月 30 日确认了主动利用;2,689 个易受攻击的实例仍然可公开访问。
攻击途径
步骤 1:向 /mcp 端点发送 HTTP GET 请求以建立会话并获取会话 ID(在默认白名单设置下无需身份验证)。步骤 2:使用会话 ID 向 /mcp_message 发送 HTTP POST 请求以调用任何 MCP 工具——包括写入触发自动服务重载的 nginx 配置。通过两个请求即可获得完全的服务器控制权,无需任何凭据。
受影响系统
nginx-ui 2.3.4 之前的版本。任何使用 MCP 集成功能的 nginx-ui 部署,特别是那些暴露在不可信网络中的部署。
缓解措施
立即升级到 nginx-ui 版本 2.3.4(补丁于 2026 年 3 月 15 日发布)。审计 nginx-ui 访问日志以查找可疑的 /mcp_message POST 请求。应用网络级控制以将 nginx-ui 管理界面限制在可信的 IP 范围内。检查 nginx 配置文件是否有意外修改。