Skip to main content

Nginx UI CVE-2026-84360

| EUVDEUVD-2026-97907 HIGH
Authentication Bypass Using an Alternate Path or Channel (CWE-288)
2026-10-12 security-advisories@github.com GHSA-vc32-4gwf-77xp
8.1
CVSS 3.1 · Vendor: github
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Obtain valid low-privilege JWT
  2. Delivery
    Call /mcp without secure-session header
  3. Exploit
    Invoke nginx_config_modify via MCP
  4. Execution
    Inject malicious Nginx config
  5. Impact
    Trigger 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.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

nginx-ui < 2.4.1

Affected Packages

go github.com/0xjacky/nginx-ui fix: 1.9.10-0.20260703131214-23d1934099b0
euvd nginx_ui fix: 2.4.1

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

Vendor (github) PRIMARY 8.1 HIGH
AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H
vuln.today AI 8.1 HIGH

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).

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:H/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (github).

CVSS VectorVendor: github

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
High
Availability
High

Lifecycle Timeline

2
Patch available
Oct 12, 2026 - 22:03 EUVD
CVE Published
Oct 12, 2026 - 21:17 cve.org
HIGH 8.1

DescriptionCVE.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.

Executive ViewAI

Why It Matters

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.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.3%
Top 74% exploitable
Prevalence
Medium
popular self-hosted open-source Nginx management UI, not core infrastructure
Threat Intel
1
1 source
Social Media
1
Sightings
Data Quality
5 sources
Confidence: Medium
EUVD NVD CVE.org EPSS Vulnrichment GHSA CIRCL GitHub VulDB

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Partial

Priority Score

40
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +40
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

CVE-2026-27944 CRITICAL POC
9.8 Mar 05

Unauthenticated backup download and RCE in Nginx UI before 2.3.3. EPSS 1.0%. PoC available.

CVE-2024-49368 HIGH POC
8.9 Oct 21

Nginx UI is a web user interface for the Nginx web server. Rated high severity (CVSS 8.9), this vulnerability is remotel

CVE-2026-42221 HIGH POC
8.1 May 04

Unauthenticated attackers can hijack the administrator account during nginx-ui's first-run installation window by claimi

CVE-2024-49366 HIGH POC
7.7 Oct 21

Nginx UI is a web user interface for the Nginx web server. Rated high severity (CVSS 7.7), this vulnerability is remotel

CVE-2026-42220 MEDIUM POC
6.5 May 04

nginx-ui prior to version 2.3.8 exposes sensitive configuration values including node.secret via an authenticated GET /a

CVE-2024-23827 CRITICAL
9.8 Jan 29

Nginx-UI is a web interface to manage Nginx configurations. Rated critical severity (CVSS 9.8), this vulnerability is re

CVE-2026-107806 CRITICAL
9.4 Oct 09

Authenticated administrators of Nginx UI releases 2.3.8 through 2.4.x can achieve remote code execution on the host by a

CVE-2026-42238 CRITICAL
9.0 May 04

Remote code execution as root in nginx-ui versions before 2.3.8 via unauthenticated backup restore within 10-minute star

CVE-2026-84318 HIGH
8.8 Oct 12

Configuration-validation bypass in Nginx UI (versions 2.0.0-rc.6 through 2.4.0) lets an authenticated low-privilege user

CVE-2026-84313 HIGH
8.8 Oct 12

Nginx UI installations before 2.4.1 expose two account-security endpoints, POST /api/otp_enroll and POST /api/finish_pas

CVE-2026-84316 HIGH
8.8 Oct 12

Configuration validation bypass in Nginx UI (nginx-ui) prior to 2.4.1 lets an authenticated user with configuration-writ

CVE-2026-107811 HIGH
8.8 Oct 09

Ordinary authenticated users of clustered Nginx UI deployments can read the cluster node token from the JSON responses o

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy