Skip to main content

Nginx UI CVE-2026-84313

| EUVDEUVD-2026-97865 HIGH
Improper Authentication (CWE-287)
2026-10-12 security-advisories@github.com GHSA-gfrc-g87h-7h5w
8.8
CVSS 3.1 · Vendor: github
View

Attack ChainAIDerived

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

  1. Access
    Obtain victim JWT via session/token theft
  2. Delivery
    POST to /api/finish_passkey_register or /api/otp_enroll
  3. Exploit
    Bind attacker-controlled passkey or TOTP secret
  4. Execution
    Retain access despite victim password change
  5. Impact
    Persistent Nginx UI account takeover

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V6 - Authentication Authentication mechanism validation
MITRE ATT&CK

2 techniques across 2 tactics: Defense Evasion, Initial Access

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Requires the attacker to already possess a valid authenticated session (a stolen JWT) for the target user - exploitation is not possible unauthenticated (PR:L). The two vulnerable endpoints, POST /api/otp_enroll and POST /api/finish_passkey_register, were registered outside the RequireSecureSession middleware and do not re-verify the current password. For the TOTP path, a limiting precondition applies: the victim must NOT have already enabled TOTP, because that path relies on an existing-enrollment guard; the passkey registration path has no equivalent guard and is exploitable regardless of prior enrollment. No user interaction by the victim is needed. The principal limiting factor is the prerequisite theft of a live session token, so defenders should weigh JWT/session exposure (XSS, token leakage) as the true gating condition.

Impact

Signals are mixed and must be read together. The NVD CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N, C:H/I:H/A:H = 8.8) indicates a network-reachable, low-complexity flaw with high impact, but the PR:L metric is decisive: exploitation is NOT unauthenticated - it requires the attacker to already hold a valid victim session (a stolen JWT), as the description explicitly states. This makes the vulnerability a post-compromise persistence/account-takeover primitive rather than a standalone wormable entry point. No EPSS score, SSVC decision, or KEV status was supplied in the input, so widespread-exploitation probability cannot be quantified and there is no evidence of active exploitation. No public exploit code was identified; the only source-code artifact is the vendor's remediation commit, not a weaponized POC. Net assessment: a genuinely serious issue for anyone running Nginx UI (full management-panel takeover that survives a password change), but realistic urgency is gated by the prerequisite JWT theft and tempered by the absence of KEV/EPSS/POC signals. Treat as a high-priority patch for exposed Nginx UI instances while recognizing it is conditional, not drive-by. EPSS data is missing and should be checked before final prioritization.

Exploit ScenarioDerived

An attacker who has obtained a legitimate user's JWT (e.g., via XSS, session theft, or a leaked token) sends a POST to /api/finish_passkey_register or /api/otp_enroll, which the server processes without re-verifying the current password or requiring a secure session. The attacker binds their own passkey (or a TOTP secret if the victim had none enrolled), establishing a second authentication factor they control. No public exploit code exists, but the attack is low-complexity and the fix commit reveals the exact unguarded endpoints.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.4% 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 installations before 2.4.1 expose two account-security endpoints, POST /api/otp_enroll and POST /api/finish_passkey_register, that let an attacker holding a stolen, valid JWT bind an attacker-controlled TOTP secret or register an attacker-controlled passkey against the victim's account, producing persistent access that survives a password change. The CVSS vector (AV:N/AC:L/PR:L/UI:N) confirms exploitation requires an authenticated session rather than being unauthenticated, and no public exploit code has been identified at time of analysis. The TOTP path only succeeds if the victim has not already enabled TOTP, because it relies on an existing-enrollment guard, whereas the passkey registration path has no equivalent guard and is exploitable regardless of prior enrollment.

RemediationAI

Vendor-released patch: 2.4.1 - upgrade Nginx UI to 2.4.1 or later (release https://github.com/0xJacky/nginx-ui/releases/tag/v2.4.1, fix commit 23d1934099b05b2a01589b48129dc3d3159d91c2, advisory https://github.com/0xJacky/nginx-ui/security/advisories/GHSA-gfrc-g87h-7h5w). Because exploitation depends on possession of a live session token, remediation should also include auditing and revoking active JWTs and rotating the JWT signing secret so stolen tokens become useless, shortening session/JWT lifetimes to reduce the theft window, and reviewing each account's TOTP and passkey enrollment records to detect and remove any attacker-bound factors (re-checking recovery codes and passkey lists, not just TOTP status). If immediate upgrade is not possible, the actionable compensating control is to block POST /api/otp_enroll and POST /api/finish_passkey_register at the reverse proxy for all clients, with the trade-off that legitimate users cannot enroll a new second factor until the block is lifted - so pair it with a scheduled maintenance window - and additionally restrict who can reach the Nginx UI API at all (IP allowlisting or an authenticating proxy); note that the same fix commit also adds RequireSecureSession to backup creation and auto-backup mutation/restore/test_s3 routes, so partial backports that change only the two OTP/passkey handlers leave that adjacent surface exposed. Also review logs and upstream proxies for token leakage or XSS that would have enabled token theft, since that is the true gating precondition.

Affected VersionsENISA

nginx-ui < 2.4.1

Affected Packages

go nginx-ui fix: 1.9.10-0.20260703131214-23d1934099b0, 2.4.1

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in go

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 for the Nginx web server. The root cause is CWE-287 (Improper Authentication): the router registrations for POST /api/otp_enroll and POST /api/finish_passkey_register sit outside the RequireSecureSession middleware, so they accepted an ordinary authenticated (JWT-bearing) session without re-verifying the account password. The purpose of RequireSecureSession is exactly that step-up check - forcing a fresh password confirmation before a security-sensitive change - so its omission on enrollment endpoints meant a bearer token alone was sufficient to alter second-factor state: adding a TOTP shared secret to an account with no TOTP configured, or registering a WebAuthn/FIDO2 passkey. The enrollment guard that blocks overwriting an existing TOTP secret does not exist on the passkey-registration path, making that endpoint the more broadly reachable of the two. The same commit that fixes this (23d1934099b05b2a01589b48129dc3d3159d91c2) also extends RequireSecureSession to backup creation, auto-backup mutation/restore/test_s3 and related mutation routes, indicating a general hardening pass on state-changing endpoints in the product rather than a single-line fix. No CPE strings were supplied in the source data, so affected build identification relies on the vendor release tag v2.4.1 and the upstream GitHub advisory GHSA-gfrc-g87h-7h5w.

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.8 HIGH
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
vuln.today AI 8.8 HIGH

Network API reachable with a stolen authenticated session (PR:L), low complexity; account takeover of a management panel yields full confidentiality, integrity, and availability impact including locking out the legitimate user.

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/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
High
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.8

DescriptionCVE.org

Nginx UI is a web user interface for the Nginx web server. Prior to 2.4.1, POST /api/otp_enroll and POST /api/finish_passkey_register are registered outside RequireSecureSession and accept a normal authenticated session without verifying the current password. An attacker with a stolen JWT can bind an attacker-controlled TOTP secret when the victim has not already enabled TOTP, or can register an attacker-controlled passkey because that path has no equivalent existing-enrollment guard. These changes create persistent account access that can survive a password change and interfere with the legitimate user's authentication. This issue is fixed in version 2.4.1.

Executive ViewAI

Why It Matters

Nginx UI deployments running versions prior to 2.4.1 contain a high-severity account-security flaw that lets someone already holding a valid session token silently bind their own multi-factor authenticator or passkey to another user's account. The resulting access persists even after the victim changes their password, meaning standard credential-reset procedures will not remove the intruder from the Nginx UI management plane that controls web traffic configuration. Leadership should treat this as an identity-integrity risk to privileged administrative accounts rather than a routine software defect, since it undermines the very recovery step organizations rely on after a suspected compromise.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis; interim mitigations are to restrict Nginx UI management interfaces to trusted networks or VPN-only access, invalidate active sessions and rotate JWT signing secrets to defeat stolen tokens, audit and remove unauthorized TOTP secrets or passkeys, require phishing-resistant re-verification for administrative account changes, and monitor or block POST requests to /api/otp_enroll and /api/finish_passkey_register from unexpected sources.

Threat Intelligence Overview

EPSS Score
0.4%
Top 65% exploitable
Prevalence
Low
niche third-party self-hosted Nginx admin panel, limited production footprint
Threat Intel
1
1 source
Social Media
1
Sightings
Data Quality
5 sources
Confidence: Medium

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.4%
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· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact
High

Priority Score

44
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +44
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-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

CVE-2026-107813 HIGH
8.8 Oct 09

Missing second-factor step-up enforcement in the Nginx UI cluster API (versions 2.0.0 through 2.4.x) allows anyone holdi

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