Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain valid low-privilege JWT
-
DeliveryCall /mcp without secure-session header
-
ExploitInvoke nginx_config_modify via MCP
-
ExecutionInject malicious Nginx config
-
ImpactTrigger reload to apply changes
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V6 - Authentication Alternate path authentication
|
| Exploitation Conditions | Requires an authenticated, OTP-enabled Nginx UI account and a valid ordinary JWT; the attacker does NOT need the X-Secure-Session-ID step-up header that normally gates HTTP config mutation. Exploitation is performed specifically through the /mcp or /mcp_message MCP endpoints, which exposed nginx_config_add and nginx_config_modify behind ordinary authentication only. Limiting factors: the attacker must already possess valid low-privilege credentials or a stolen/forged JWT (PR:L), the account must be OTP-enabled, and the instance must run a version prior to 2.4.1; there is no unauthenticated or no-interaction path, which meaningfully constrains external attackers. |
| Impact | This is a genuine high-priority issue for anyone running Nginx UI below 2.4.1, but the real-world risk is materially lower than the 8.1 CVSS might suggest because exploitation requires an existing authenticated foothold. The CVSS vector (AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H) correctly captures a network-reachable, low-complexity, authenticated flaw with no confidentiality impact but high integrity and availability impact - consistent with CWE-288 (authentication bypass via an alternate path). The core weakness is an authorization inconsistency: the intended step-up control (RequireSecureSession / X-Secure-Session-ID) gates the normal HTTP config-mutation routes, but the /mcp and /mcp_message routes expose the same nginx_config_add and nginx_config_modify capabilities behind ordinary JWT auth only, so an OTP-enabled user who should be forced through step-up can skip it. No EPSS score, no CISA KEV listing, and no public PoC were provided, so there is no evidence of widespread or automated exploitation - the realistic threat is an insider, a compromised low-privilege account, or a stolen/forged normal JWT rather than an unauthenticated internet-wide attack. Weighing the signals together: high technical impact and low attack complexity raise priority, but the PR:L authentication requirement and absence of KEV/EPSS/POC signals keep this in the 'patch promptly, not a drop-everything emergency' tier for most deployments. |
| Exploit ScenarioDerived | An attacker who holds (or steals) a valid normal JWT for an OTP-enabled Nginx UI account sends a request to the /mcp or /mcp_message endpoint, which checks only ordinary authentication and not the X-Secure-Session-ID step-up header. Through MCP they invoke nginx_config_add or nginx_config_modify to inject a malicious server/location block and trigger a reload, altering how Nginx serves or proxies traffic. No public exploit code was identified at time of analysis, and the low attack complexity (AC:L) means once a JWT is obtained the request is straightforward. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 12, 2026
Nginx UI versions prior to 2.4.1 let an authenticated, OTP-enabled user holding only an ordinary JWT - without the X-Secure-Session-ID step-up header - create or modify Nginx configuration and trigger reload behavior by calling the nginx_config_add and nginx_config_modify tools through the /mcp and /mcp_message endpoints, which were protected by ordinary authentication alone. The equivalent HTTP configuration mutation routes correctly enforced the RequireSecureSession middleware, so the MCP channel constituted an alternate path around that control (CWE-288). Per the CVSS 3.1 vector AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H, impact is limited to integrity and availability with high severity driven by unconstrained config writes; exploitation requires an existing low-privilege authenticated session on a pre-2.4.1 instance, and no public exploit code or confirmed active exploitation was identified at time of analysis. The issue is fixed in version 2.4.1, and the upstream commit additionally hardened backup-related routes with RequireSecureSession.
RemediationAI
Upgrade Nginx UI to version 2.4.1 or later, which is the vendor-released fix per GHSA-vc32-4gwf-77xp and release tag v2.4.1 (https://github.com/0xJacky/nginx-ui/releases/tag/v2.4.1; remediation commit https://github.com/0xJacky/nginx-ui/commit/23d1934099b05b2a01589b48129dc3d3159d91c2). Where an immediate upgrade is not possible, disable the MCP feature entirely or remove/block the /mcp and /mcp_message routes at the reverse proxy so the nginx_config_add and nginx_config_modify tools cannot be reached at all; the trade-off is that any legitimate MCP-based automation or AI tooling integration stops working. As a narrower compensating control, restrict /mcp and /mcp_message to trusted source networks or loopback and require a separate authentication layer in front of them, accepting that this only raises the bar and does not fully restore the step-up guarantee. Because exploitation requires an already valid low-privilege JWT on an OTP-enabled account, additional containment includes rotating JWT secrets and invalidating existing sessions so stolen or previously issued tokens cannot be replayed, plus reviewing Nginx configuration history for unauthorized modifications and reload events that may indicate prior abuse. Note that the upstream fix also extends RequireSecureSession to the backup endpoints (GET /backup, POST /auto_backup, POST /auto_backup/:id, DELETE /auto_backup/:id, PATCH /auto_backup/:id, POST /auto_backup/test_s3), so any automation calling those routes with only a plain JWT will begin returning HTTP 401 after upgrading - those clients must be updated to establish a secure session first.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 2 packages in go, euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Nginx UI is a Go/Gin web interface that manages an Nginx server's configuration and lifecycle, and it implements a step-up authentication model: sensitive configuration mutation endpoints are wrapped in both AuthRequired() and RequireSecureSession(), the latter validating an X-Secure-Session-ID header issued only after a second authentication factor (relevant for OTP-enabled accounts). The root cause is CWE-288 (Authentication Bypass Using an Alternate Path or Channel): the MCP (Model Context Protocol) surface - specifically the /mcp and /mcp_message routes - was registered behind ordinary JWT authentication only, yet exposed the privileged nginx_config_add and nginx_config_modify operations. Because those tools performed the same privileged state change as the HTTP config routes, they effectively provided a parallel entry point that skipped the step-up check, allowing an OTP-enabled user with a valid but non-step-up JWT to write Nginx configuration and cause a reload. The fix commit 23d1934099b05b2a01589b48129dc3d3159d91c2 applies RequireSecureSession() to the affected routes and, as defense in depth, extends the same middleware to backup endpoints (GET /backup, POST /auto_backup, POST /auto_backup/:id, DELETE /auto_backup/:id, PATCH /auto_backup/:id, POST /auto_backup/test_s3), with accompanying security regression tests asserting HTTP 401 for OTP users lacking a secure session token.
Know when Nginx Ui gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H
MCP routes are network-reachable (AV:N) and simple to call (AC:L) but require a valid normal JWT (PR:L); config write gives I:H and reload gives A:H, with no direct data disclosure (C:N).
Primary rating from Vendor (github).
CVSS VectorVendor: github
Lifecycle Timeline
2DescriptionCVE.org
Nginx UI is a web user interface for the Nginx web server. Prior to 2.4.1, the HTTP configuration mutation routes require RequireSecureSession, but /mcp and /mcp_message require only ordinary authentication before exposing nginx_config_add and nginx_config_modify. An OTP-enabled user with a normal JWT but no valid X-Secure-Session-ID can therefore create or modify Nginx configuration and trigger reload behavior through MCP, bypassing the intended step-up control. This issue is fixed in version 2.4.1.
Articles & Coverage 2
Executive ViewAI
Nginx UI versions before 2.4.1 expose an authenticated access-control bypass that lets a low-privilege user with a valid JWT modify Nginx configuration and trigger reloads through the MCP endpoints, bypassing the step-up secure-session requirement enforced on equivalent HTTP routes. This creates integrity and availability risk for web services managed by affected instances, particularly where management interfaces are reachable by compromised or untrusted authenticated accounts. No public exploit identified at time of analysis, but the flaw is high severity and requires immediate remediation.
Apply vendor patch.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
Unauthenticated backup download and RCE in Nginx UI before 2.3.3. EPSS 1.0%. PoC available.
Nginx UI is a web user interface for the Nginx web server. Rated high severity (CVSS 8.9), this vulnerability is remotel
Unauthenticated attackers can hijack the administrator account during nginx-ui's first-run installation window by claimi
Nginx UI is a web user interface for the Nginx web server. Rated high severity (CVSS 7.7), this vulnerability is remotel
nginx-ui prior to version 2.3.8 exposes sensitive configuration values including node.secret via an authenticated GET /a
Nginx-UI is a web interface to manage Nginx configurations. Rated critical severity (CVSS 9.8), this vulnerability is re
Authenticated administrators of Nginx UI releases 2.3.8 through 2.4.x can achieve remote code execution on the host by a
Remote code execution as root in nginx-ui versions before 2.3.8 via unauthenticated backup restore within 10-minute star
Configuration-validation bypass in Nginx UI (versions 2.0.0-rc.6 through 2.4.0) lets an authenticated low-privilege user
Nginx UI installations before 2.4.1 expose two account-security endpoints, POST /api/otp_enroll and POST /api/finish_pas
Configuration validation bypass in Nginx UI (nginx-ui) prior to 2.4.1 lets an authenticated user with configuration-writ
Ordinary authenticated users of clustered Nginx UI deployments can read the cluster node token from the JSON responses o
EUVD-2026-97907
GHSA-vc32-4gwf-77xp
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB