Browse / CVEs / CVE-2026-33032
CVE-2026-33032· nginx-ui· CWE-306
Nginx UI - Broken Access Control
criticalseverity
9.8CVSS score
35.3%likelihood of exploitation, next 30 days
98%of all CVEs are less likely
Readycheck to confirm it
Network attackers can fully control nginx service, including config modification and service restart, leading to complete service takeover.
Impact
An unauthenticated attacker with a valid MCP session ID can inject arbitrary nginx configurations,create reverse proxies for credential theft, and achieve remote code execution via nginx config primitives.
Fix
Upgrade to nginx-ui v2.3.4 or later which adds AuthRequired() to /mcp_message.
How to confirm it
Send: POST /mcp_message
Positive when: contains "{\"jsonrpc\":" and "\"message\":" and "\"id\":" AND status 400Run it with nuclei: nuclei -id CVE-2026-33032 -u <target>
The full check
id: CVE-2026-33032
info:
name: Nginx UI - Broken Access Control
author: DhiyaneshDk
severity: critical
description: |
Network attackers can fully control nginx service, including config modification and service restart, leading to complete service takeover.
impact: |
An unauthenticated attacker with a valid MCP session ID can inject arbitrary nginx configurations,create reverse proxies for credential theft, and achieve remote code execution via nginx config primitives.
remediation: Upgrade to nginx-ui v2.3.4 or later which adds AuthRequired() to /mcp_message.
reference:
- https://github.com/0xJacky/nginx-ui/security/advisories/GHSA-h6c2-x2m2-mwhf
- https://github.com/0xJacky/nginx-ui/commit/413dc631
- https://nvd.nist.gov/vuln/detail/CVE-2026-33032
classification:
cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
cvss-score: 9.8
cve-id: CVE-2026-33032
epss-score: 0.35273
epss-percentile: 0.98458
cwe-id: CWE-306
metadata:
verified: true
max-request: 1
product: nginx-ui
shodan-query: http.title:"Nginx UI"
fofa-query: title="Nginx UI"
tags: cve,cve2026,nginx-ui,mcp,unauth,misconfig,vkev
variables:
string: "{{to_lower(rand_text_alpha(5))}}"
http:
- raw:
- |
POST /mcp_message HTTP/1.1
Host: {{Hostname}}
Content-Type: application/json
{"jsonrpc":"2.0","method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"{{string}}","version":"1.0"}},"id":1}
matchers-condition: and
matchers:
- type: word
part: body
words:
- '{"jsonrpc":'
- '"message":'
- '"id":'
condition: and
- type: status
status:
- 400References
- https://github.com/0xJacky/nginx-ui/security/advisories/GHSA-h6c2-x2m2-mwhf
- https://github.com/0xJacky/nginx-ui/commit/413dc631
- https://nvd.nist.gov/vuln/detail/CVE-2026-33032
Use this check only on systems you are authorised to test. Where the data comes from