CVE-2026-33032: nginx-ui's Unauthenticated MCP Endpoint Allows Remote Nginx Takeover
(updated )
The nginx-ui MCP (Model Context Protocol) integration exposes two HTTP endpoints: /mcp and /mcp_message. While /mcp requires both IP whitelisting and authentication (AuthRequired() middleware), the /mcp_message endpoint only applies IP whitelisting - and the default IP whitelist is empty, which the middleware treats as “allow all”. This means any network attacker can invoke all MCP tools without authentication, including restarting nginx, creating/modifying/deleting nginx configuration files, and triggering automatic config reloads - achieving complete nginx service takeover.
References
- github.com/0xJacky/nginx-ui
- github.com/0xJacky/nginx-ui/blob/f89f8ff8223478988f7ed49bf1d3dbf2de44bf92/internal/middleware/ip_whitelist.go
- github.com/0xJacky/nginx-ui/blob/f89f8ff8223478988f7ed49bf1d3dbf2de44bf92/mcp/router.go
- github.com/0xJacky/nginx-ui/security/advisories/GHSA-h6c2-x2m2-mwhf
- github.com/advisories/GHSA-h6c2-x2m2-mwhf
- nvd.nist.gov/vuln/detail/CVE-2026-33032
- websec.net/blog/cve-2026-33032-unauthenticated-nginx-ui-mcp-takeover-69e1200f9fceb1f3fbe9c47f
Code Behaviors & Features
Detect and mitigate CVE-2026-33032 with GitLab Dependency Scanning
Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Learn more about Dependency Scanning →