/

CVE-2026-84315

Severity:

HIGH RISK

(8.3)

Missing Authorization (CWE-862) in Nginx UI Web App

CVE-2026-84315

Deferred

Vulnerability type

Category:

Missing Authorization

CWE:

CWE-862

Impact:

Unauthorized modification of sensitive Nginx UI resources

Severity:

HIGH RISK

(8.3)

CVSS version:

3.1

Catch this CVE while code is being written

Detect vulnerable code directly in pull requests, so CVEs are fixed before merge.

Summary

Nginx UI fails to require a fresh secure session for several authenticated mutation routes, allowing a stolen authenticated session to bypass OTP or passkey step-up checks. An attacker using such a session may modify backups, DNS settings, certificates, Nginx controls, and site or stream automation.

Nginx UI fails to require a fresh secure session for several authenticated mutation routes, allowing a stolen authenticated session to bypass OTP or passkey step-up checks. An attacker using such a session may modify backups, DNS settings, certificates, Nginx controls, and site or stream automation.

Affected context

The issue occurs in Nginx UI deployments where authenticated users are expected to complete an additional OTP or passkey verification before sensitive changes. Multiple mutation endpoints do not consistently enforce the required secure-session condition, so a valid but stolen authenticated session may retain access to actions that should require step-up authentication.

The issue occurs in Nginx UI deployments where authenticated users are expected to complete an additional OTP or passkey verification before sensitive changes. Multiple mutation endpoints do not consistently enforce the required secure-session condition, so a valid but stolen authenticated session may retain access to actions that should require step-up authentication.

Exploit preconditions

  • Attack surface: Authenticated web application mutation routes - Required access: A stolen or otherwise obtained authenticated user session - Trigger point: Requests to sensitive routes for configuration or resource

changes

  • Additional condition: The affected account uses step-up authentication,

but the route does not enforce a fresh secure session

  • Why exploitation is possible: Authorization checks do not consistently

enforce the stronger authentication state required for sensitive actions

  • Attack surface: Authenticated web application mutation routes - Required access: A stolen or otherwise obtained authenticated user session - Trigger point: Requests to sensitive routes for configuration or resource

changes

  • Additional condition: The affected account uses step-up authentication,

but the route does not enforce a fresh secure session

  • Why exploitation is possible: Authorization checks do not consistently

enforce the stronger authentication state required for sensitive actions

Why this happens

The application applies authentication but fails to apply the corresponding authorization requirement to multiple state-changing routes. In particular, the routes do not consistently enforce RequireSecureSession, allowing a session that has not completed the expected OTP or passkey step-up to perform privileged actions. This behavior maps to CWE-862, Missing Authorization, because access-control enforcement is incomplete for protected operations.

The application applies authentication but fails to apply the corresponding authorization requirement to multiple state-changing routes. In particular, the routes do not consistently enforce RequireSecureSession, allowing a session that has not completed the expected OTP or passkey step-up to perform privileged actions. This behavior maps to CWE-862, Missing Authorization, because access-control enforcement is incomplete for protected operations.

Potential impact

  • An attacker may create or alter automatic backup settings
  • DNS credentials and records could be modified
  • Certificates or ACME users could be created, replaced, or changed
  • Nginx control settings may be altered
  • Site or stream automation could be changed
  • The attacker could cause service disruption, traffic redirection, or

broader administrative compromise

  • An attacker may create or alter automatic backup settings
  • DNS credentials and records could be modified
  • Certificates or ACME users could be created, replaced, or changed
  • Nginx control settings may be altered
  • Site or stream automation could be changed
  • The attacker could cause service disruption, traffic redirection, or

broader administrative compromise

General mitigation guidance

Mitigation generally focuses on enforcing authorization and step-up authentication consistently at every sensitive mutation endpoint. Secure patterns include requiring a fresh, validated secure session for all high-impact actions, centralizing authorization middleware, and applying deny-by-default route policies. Session identifiers should be protected against theft, sensitive changes should use narrowly scoped privileges, and configuration, credential, certificate, and automation operations should be separated by least-privilege roles. Reducing reliance on long-lived authenticated sessions and requiring reauthentication for high-risk changes can further limit the effect of session compromise.

Mitigation generally focuses on enforcing authorization and step-up authentication consistently at every sensitive mutation endpoint. Secure patterns include requiring a fresh, validated secure session for all high-impact actions, centralizing authorization middleware, and applying deny-by-default route policies. Session identifiers should be protected against theft, sensitive changes should use narrowly scoped privileges, and configuration, credential, certificate, and automation operations should be separated by least-privilege roles. Reducing reliance on long-lived authenticated sessions and requiring reauthentication for high-risk changes can further limit the effect of session compromise.

How teams detect issues like this

Detection approaches include reviewing route definitions and middleware for inconsistent secure-session enforcement, using static analysis to identify sensitive mutation handlers without authorization guards, and testing every privileged action with and without a completed step-up challenge. Code review should flag duplicated or bypassable authorization logic, missing deny-by-default policies, and endpoints that trust authentication alone. Policy checks and automated security testing can verify that all high-impact actions require the intended authentication state.

Detection approaches include reviewing route definitions and middleware for inconsistent secure-session enforcement, using static analysis to identify sensitive mutation handlers without authorization guards, and testing every privileged action with and without a completed step-up challenge. Code review should flag duplicated or bypassable authorization logic, missing deny-by-default policies, and endpoints that trust authentication alone. Policy checks and automated security testing can verify that all high-impact actions require the intended authentication state.

Sources

SourceLink
github.comgithub.com/0xJacky/nginx-ui/commit/23d1934099b05b2a01589b48129dc3d3159d91c2
github.comgithub.com/0xJacky/nginx-ui/releases/tag/v2.4.1
github.comgithub.com/0xJacky/nginx-ui/security/advisories/GHSA-5v7c-xpfp-p65m

Frequently asked

questions

It may be exploitable remotely through the Nginx UI if an attacker obtains a

valid authenticated session and can reach the affected web endpoints.

Not necessarily. The central issue is that a stolen authenticated session may

be accepted for sensitive actions without requiring the expected fresh OTP or

passkey step-up.

Enforce secure-session and authorization checks centrally on every sensitive

mutation route, using deny-by-default behavior and requiring fresh

reauthentication where appropriate.

Maintain an inventory of privileged actions, test each route's authorization

state explicitly, use short-lived protected sessions, and include step-up

authentication checks in code review and automated security testing.

It may be exploitable remotely through the Nginx UI if an attacker obtains a

valid authenticated session and can reach the affected web endpoints.

Not necessarily. The central issue is that a stolen authenticated session may

be accepted for sensitive actions without requiring the expected fresh OTP or

passkey step-up.

Enforce secure-session and authorization checks centrally on every sensitive

mutation route, using deny-by-default behavior and requiring fresh

reauthentication where appropriate.

Maintain an inventory of privileged actions, test each route's authorization

state explicitly, use short-lived protected sessions, and include step-up

authentication checks in code review and automated security testing.

Find out what's already
exploitable in your codebase.