highCVSS 8.1Vulnerability

CVE-2026-84360

### Summary An OTP-enabled authenticated user who cannot use the HTTP configuration mutation endpoints without a valid secure session can still mutate Nginx configuration through `/mcp` and `/mcp_message` using only ordinary authentication. ### Details The HTTP configuration mutation surface is explicitly grouped behind `middleware.RequireSecureSession()`. By contrast, the MCP endpoints are exposed with only `middleware.AuthRequired()`. The MCP server exposes configuration mutation tools including `nginx_config_add` and `nginx_config_modify`, so OTP-enabled users gain an alternate path around the intended step-up requirement. Relevant code paths: - [api/config/router.go](/home/kali/Desktop/bounty/nginx-ui/api/config/router.go:14) - [internal/middleware/secure_session.go](/home/kali/Desktop/bounty/nginx-ui/internal/middleware/secure_session.go:52) - [mcp/router.go](/home/kali/Desktop/bounty/nginx-ui/mcp/router.go:9) - [mcp/config/config_add.go](/home/kali/Desktop/bounty/nginx-ui/mcp/config/config_add.go:34) - [mcp/config/config_modify.go](/home/kali/Desktop/bounty/nginx-ui/mcp/config/config_modify.go:55) This is a security-control bypass rather than a missing feature. The product already established that OTP-enabled users should complete a secure session before high-impact configuration mutations are accepted on the HTTP path. ### PoC I verified this locally in an isolated environment with a temporary end-to-end harness that exercised the real `/mcp` and `/mcp_message` routes. What the executed test did: 1. Created a temporary config directory and configured Nginx control commands to harmless local values (`true`) to avoid touching the host. 2. Created a real OTP-enabled user in a temporary SQLite database. 3. Generated a real JWT for that OTP-enabled user. 4. Started a local test server exposing the real `/mcp` and `/mcp_message` routes. 5. Opened an authenticated SSE connection to `/mcp` with the JWT and no `X-Secure-Session-ID`. 6. Initialized the MCP session

Properties

severity
high
summary
Nginx UI: OTP secure-session step-up can be bypassed via MCP configuration tools
cvss_score
8.1
retrieved_at
2026-10-15T22:56:51+00:00
ghsa_published
2026-10-15T20:14:10Z
source_url
https://github.com/advisories/GHSA-vc32-4gwf-77xp
ghsa_updated
2026-10-15T20:14:11Z
ghsa_id
GHSA-vc32-4gwf-77xp
last_source
GitHub Advisory Database
cve_id
CVE-2026-84360
cvss_vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H
signal_observed_at
2026-10-15T22:56:51+00:00
is_ghsa_only
false

Related Entities (4)

VULNERABLE_TO (1)

←[Software]go/github.com/0xJacky/Nginx-UI

AFFECTS (1)

→[Software]go/github.com/0xJacky/Nginx-UI

HAS_WEAKNESS (1)

→[Weakness]Authentication Bypass Using an Alternate Path or Channel

REPORTED_BY (1)

→[Source]GitHub Advisory Database

Explore deeper with Ninja Signal's threat intelligence graph

CVE-2026-84360 (CVSS 8.1) — Ninja Signal Threat Intelligence | Ninja Signal