Every CVE Search/ Get API key

CVE-2026-84360

Nginx UI: OTP secure-session step-up can be bypassed via MCP configuration tools

8.1 HighFix available

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.

Attack profile

How easy it is to exploit

Attack vector
Network
Complexity
Low
Privileges needed
Low
User interaction
None

What an attacker can affect

Confidentiality
None
Integrity
High
Availability
High

Exploit likelihood

0.42%Up 0.1 points since Oct 13, 2026
90%50%10%1%

What each source reports

CVE List Score used 8.1

Nginx UI: OTP secure-session step-up can be bypassed via MCP configuration tools

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.

Record
CVE-2026-84360
CVSS 3.1
8.1 HighCVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H
Weakness
CWE-288
Updated
2026-11-02
EUVDEUVD-2026-97907 8.1

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.

Record
EUVD-2026-97907
CVSS 3.1
8.1 HighCVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H
Updated
2026-11-02
GitHub AdvisoriesGHSA-vc32-4gwf-77xp 8.1

Nginx UI: OTP secure-session step-up can be bypassed via MCP configuration tools

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:

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 over /mcp_message.
  7. Called the real nginx_config_add tool over /mcp_message.
  8. Verified that the tool succeeded and created mcp-bypass.conf in the managed config directory without any secure-session step-up.

Observed result from the actual local verification:

  • The MCP session initialized successfully without any X-Secure-Session-ID.
  • The config file was written through the MCP tool path using only JWT authentication.

Impact

OTP-enabled accounts lose the intended step-up protection for high-impact Nginx configuration changes when MCP is enabled. A user who should be blocked until re-authenticating can still create or modify configuration files and trigger reload behavior through MCP.

Record
GHSA-vc32-4gwf-77xp
CVSS 3.1
8.1 HighCVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H
Weakness
CWE-288
Updated
2026-11-02
NVD 8.1

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.

Record
CVE-2026-84360
CVSS 3.1
8.1 HighCVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H
Weakness
CWE-288
Updated
2026-11-02
OSV 8.1

Nginx UI: OTP secure-session step-up can be bypassed via MCP configuration tools

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.

Record
CVE-2026-84360
CVSS 3.1
8.1 HighCVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H
Weakness
CWE-288
Updated
2026-11-02
OSVGHSA-vc32-4gwf-77xp 8.1

Nginx UI: OTP secure-session step-up can be bypassed via MCP configuration tools

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:

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 over /mcp_message.
  7. Called the real nginx_config_add tool over /mcp_message.
  8. Verified that the tool succeeded and created mcp-bypass.conf in the managed config directory without any secure-session step-up.

Observed result from the actual local verification:

  • The MCP session initialized successfully without any X-Secure-Session-ID.
  • The config file was written through the MCP tool path using only JWT authentication.

Impact

OTP-enabled accounts lose the intended step-up protection for high-impact Nginx configuration changes when MCP is enabled. A user who should be blocked until re-authenticating can still create or modify configuration files and trigger reload behavior through MCP.

Record
GHSA-vc32-4gwf-77xp
CVSS 3.1
8.1 HighCVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H
Weakness
CWE-288
Updated
2026-11-02
OSVGO-2026-6799 No score

Nginx UI: OTP secure-session step-up can be bypassed via MCP configuration tools in github.com/0xJacky/Nginx-UI

Nginx UI: OTP secure-session step-up can be bypassed via MCP configuration tools in github.com/0xJacky/Nginx-UI

Record
GO-2026-6799
Updated
2026-11-02

Affected products

Affected packages

Affected packages
PackageAffectedFixed
github.com/0xJacky/Nginx-UI
Go
before 1.9.10-0.20260703131214-23d1934099b0
1.9.10-0.20260703131214-23d1934099b0

History

History
RecordedChangedSources
first indexedCVE List, EUVD, GitHub Advisories, NVD, OSV

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2026-84360 is a high vulnerability (CVSS 8.1) in 0xjacky Nginx-ui, published October 12, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.42%, the 36th percentile. Fixed in github.com/0xJacky/Nginx-UI 1.9.10-0.20260703131214-23d1934099b0.

References

MoveEnter Open