Skip to main content

Nginx UI CVE-2026-107808

| EUVDEUVD-2026-95891 HIGH
Improper Authentication (CWE-287)
2026-10-09 GitHub_M GHSA-45gv-9wjv-xh7p
8.1
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Obtain victim's valid password
  2. Exploit
    POST /api/login against passkey-only account
  3. Execution
    Server issues session without WebAuthn assertion
  4. Impact
    Access administrative nginx configuration functions

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

Exploitable only against an Nginx UI account (versions 2.0.0 through 2.4.x) that has a registered passkey as its ONLY second factor (EnabledPasskey true with no TOTP secret configured), so Enabled2FA reports a second factor while the login path never enforces a WebAuthn assertion. The decisive prerequisite is that the attacker must already possess the account's valid password - the flaw converts a known-password condition into full account takeover by skipping the passkey step. Limiting factors: accounts protected by TOTP are not affected (the EnabledOTP check still applies); accounts with no 2FA are out of scope; and no exploitation is possible without the password, so this is not remote-unauthenticated against a default install despite the PR:N metric.

Impact

This is a genuine authentication-control flaw (CWE-287) rather than inflated CVSS noise, but its real-world priority is moderated by a hard precondition. The input provides no EPSS score, no CISA KEV listing, and no POC indicator, so there is no signal of active or probable exploitation - only the CVSS 8.1 (CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H). The vector's PR:N technically marks it unauthenticated, yet exploitation is impossible without first obtaining the victim's valid password, which is why AC:H is correctly applied and why raw PR:N overstates ease of access - the 'privilege' is effectively a stolen credential, not system access. The CVSS network vector and description are consistent (the flaw is in the POST /api/login HTTP handler). No SSVC decision data was supplied. Net assessment: a serious defense-in-depth failure (2FA that silently does not enforce the second factor for passkey-only accounts) that becomes critical only after a password is compromised; treat as a high-priority patch for any Nginx UI instance using passkey-only accounts, but it is not a wormable, unauthenticated internet-wide risk.

Exploit ScenarioDerived

An attacker who has already harvested an administrator's password (via phishing, reuse, or a prior leak) targets an Nginx UI account configured with a passkey as its only second factor. They send a single POST /api/login request with the valid password; because the server checks EnabledOTP but never demands a WebAuthn assertion for passkey-only accounts, a full authenticated session is issued and the attacker reaches administrative nginx-configuration functionality without ever presenting the passkey. No public exploit identified at time of analysis, and the attack leverages a simple authenticated API call (no special tooling required).

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 09, 2026

Account takeover in Nginx UI versions 2.0.0 through 2.4.x affects accounts configured with a passkey as their only second factor: the POST /api/login handler checks EnabledOTP but never requires a WebAuthn assertion when EnabledPasskey is true and no TOTP secret exists, so a valid password alone yields a fully authenticated session despite the account reporting a second factor. An attacker who already holds the account password can reach administrative Nginx UI functionality without possessing the registered passkey; accounts protected by TOTP, and accounts with no 2FA configured, are unaffected. There is no public exploit identified at time of analysis and the issue is not listed in CISA KEV, though the CVSS 3.1 score is 8.1 (AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H), with the AC:H metric reflecting the hard password precondition rather than any exploit complexity.

RemediationAI

Upgrade Nginx UI to version 2.5.0 or later, which is the vendor-released patch referenced by GHSA-45gv-9wjv-xh7p and delivered by commit 95cd21b70814e5d9a48a359aa238aeea1ac97429 - the fix adds a mandatory WebAuthn pre-authentication step before any login token is issued and switches cached challenge retrieval to an atomic take, so a passkey-only account can no longer be authenticated by password alone. Because exploitation requires the attacker to already know the account password, rotate administrative credentials and treat any credential reuse or suspected password disclosure as a compromise indicator for the pre-2.5.0 window; the CVSS vector lists PR:N, but the decisive operational prerequisite is possession of a valid password, so password hygiene is directly load-bearing here. If immediate upgrade is not possible, register a TOTP secret on every administrative account (which routes login through the still-enforced EnabledOTP check), or remove passkey-only configurations until the upgrade lands; note that adding TOTP changes the enrolled second-factor set and requires re-enrollment of authenticators. As a compensating control with a clear trade-off, restrict network access to /api/login and the Nginx UI listener to trusted management networks or a VPN, accepting reduced remote accessibility, and monitor for /api/login successes on administrative accounts that lack a corresponding WebAuthn ceremony.

Affected VersionsENISA

nginx-ui 2.0.0, < 2.5.0

Affected Packages

go github.com/0xjacky/nginx-ui fix: 1.9.10-0.20260728074558-95cd21b70814
euvd nginx_ui_2_0_0 fix: 2.5.0

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 web front end for managing the Nginx web server, built on the Gin framework with a GORM-backed data layer and JWT bearer tokens. The root cause is CWE-287 (Improper Authentication): the login flow in api/user/auth.go gates a second step on the OTP configuration flag alone, and passkey verification lives on a separate code path (api/user/passkey.go) that the password-authenticated login never invokes. In the vulnerable window, the login routine calls user.GenerateJWT and returns an access token immediately after the password check whenever EnabledOTP is false - even if the user object reports EnabledPasskey and a second factor is nominally active. The upstream fix restructures authentication into an explicit multi-step model: a new PasskeyRequired status code (198) and pre_auth_id are introduced, beginPasskeyPreAuthentication starts a WebAuthn BeginLogin ceremony and caches a passkeyPreAuthSession under a UUID key, and FinishPasskeyPreAuthentication consumes that session via cache.Take and calls IssueLoginToken only with a LoginProofPasskey proof. Token issuance is additionally refactored from GenerateJWT to IssueLoginToken with an explicit login proof (password, OTP, passkey, or external), and cache.Get is replaced with an atomic cache.Take for both 2FA and passkey session material so a cached challenge cannot be replayed.

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_M) PRIMARY 8.1 HIGH
AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
vuln.today AI 8.1 HIGH

Network-facing login API (AV:N); AC:H because the attacker must already hold the password and the account must be non-default passkey-only; PR:N as no system privilege is held; full admin takeover yields C:H/I:H/A:H.

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

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

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

Lifecycle Timeline

2
Patch available
Oct 09, 2026 - 17:02 EUVD
CVE Published
Oct 09, 2026 - 15:11 cve.org
HIGH 8.1

DescriptionCVE.org

Nginx UI is a web user interface for the Nginx web server. From 2.0.0 until 2.5.0, POST /api/login checks EnabledOTP but does not require a WebAuthn assertion when EnabledPasskey is true and no TOTP secret is configured. A passkey-only account is therefore issued a session after password verification, despite Enabled2FA reporting that the account has a second factor. An attacker who obtains the password can take over the account and reach administrative functionality without the registered passkey. This issue is fixed in version 2.5.0.

Technical POC Analysis

CWE-287 (Improper Authentication) — advisory also assigns CWE-308 (Use of Single-factor Authentication) and CWE-305 (Authentication Bypass by Primary Weakness).

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

Nginx UI, the web management console used to administer Nginx instances across versions 2.0.0 through 2.4.x, contains a two-factor authentication bypass that can grant full administrative control of the console to anyone who obtains a valid account password. Only accounts configured with a passkey as their sole second factor are affected; organizations that rely on passkey-only protection for Nginx UI administrators may be exposed to silent account takeover of their web infrastructure controls. Because the vendor has not yet released a fix and there is no public exploit identified at time of analysis, the immediate priority is reducing exposure and eliminating the vulnerable configuration rather than emergency patching.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: reconfigure passkey-only accounts to require TOTP or eliminate passkey-only 2FA entirely; enforce strong, unique passwords for all Nginx UI accounts; restrict administrative interface access to trusted networks or VPN; monitor and alert on anomalous successful logins; and disable or lock passkey-only accounts until a fixed version is available.

Threat Intelligence Overview

EPSS Score
0.4%
Top 67% exploitable
Prevalence
Low
self-hosted third-party nginx admin UI, niche homelab/SMB footprint
Threat Intel
1
1 source
Data Quality
4 sources
Confidence: Medium
EUVD NVD CVE.org EPSS Vulnrichment GHSA 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.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
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Total

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