Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessCraft attacker-controlled Casdoor authorization URL
-
DeliveryLure victim admin to click link
-
ExploitVictim browser completes OAuth callback
-
ExecutionCallback mints Nginx UI session with no state binding
-
ImpactAccount/session takeover of admin panel
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 when Nginx UI (prior to 2.4.1) is deployed with Casdoor OAuth/SSO configured, because the vulnerable GetCasdoorUri/CasdoorCallback flow uses the configured Casdoor application name as a constant OAuth 'state' and the callback does not bind that state to the initiating browser session. Exploitation is LIMITED by: (1) required victim interaction (UI:R) - the targeted user must be induced to open the attacker's authorization link; (2) the deployment must use Casdoor SSO - instances relying on local/password or other authentication are not affected; and (3) only versions before 2.4.1 are vulnerable. Attacker is unauthenticated (PR:N). |
| Impact | This is a genuine but conditionally-gated authentication flaw (CWE-287) rather than a universally critical issue. The CVSS vector (AV:N/AC:L/PR:N/UI:R) confirms a network-reachable, low-complexity, unauthenticated attack - strong signals - but it is tempered by UI:R (the victim must click an attacker-supplied link) and, critically, by the fact that the vulnerable code path (GetCasdoorUri/CasdoorCallback) only exists when the deployment is configured to use Casdoor OAuth/SSO. No EPSS score, CISA KEV listing, or public exploit was provided in the input, so there is no evidence of active exploitation or mass-scanning pressure at this time. The CVSS claims C:H/I:L, implying session/account compromise of the Nginx UI admin panel, which is plausible for a login-CSRF/OAuth-state flaw against a privileged management interface. Net: a legitimate medium-high priority for the subset of operators running Nginx UI with Casdoor SSO, but low urgency for the (likely majority) of deployments using local authentication. One data caveat worth flagging for triage: the provided source-code diff hardens backup endpoints with RequireSecureSession and does NOT directly show the OAuth state-binding fix described in the summary - the authoritative evidence for the specific flaw is the advisory GHSA-44xr-mrhh-qm78, not the shown hunk. |
| Exploit ScenarioDerived | An attacker running an Nginx UI instance configured with Casdoor crafts an authorization link using the fixed, predictable application-name 'state' value and lures a victim administrator into clicking it (e.g., via phishing). Because CasdoorCallback never binds the state to the victim's browser session, the victim's browser silently completes the attacker-controlled authorization flow and the callback mints an Nginx UI session for the identity returned by the attacker's authorization code. No public exploit identified at time of analysis; exploitation requires the network-reachable UI and victim interaction (UI:R). |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 12, 2026
Nginx UI deployments that use Casdoor OAuth/SSO for authentication can issue a valid application session for an attacker-chosen identity on versions prior to 2.4.1, because the OAuth 'state' value is a fixed constant (the configured Casdoor application name) and the callback never binds it to the browser session that started the login. An unauthenticated attacker who persuades a victim to open a crafted Casdoor authorization link can have the victim's browser complete the attacker-controlled authorization flow, after which the callback mints an Nginx UI session for the identity returned by that authorization code - yielding high confidentiality impact with limited integrity impact (CVSS 3.1 7.1, AV:N/AC:L/PR:N/UI:R). The flaw is conditionally gated: it only applies to instances with Casdoor OAuth configured and requires victim interaction, so it is a genuine authentication-bypass issue rather than a universally exploitable one; no public exploit code was identified at time of analysis, and a vendor-released patch in version 2.4.1 is available.
RemediationAI
Vendor-released patch: upgrade Nginx UI to version 2.4.1 or later (release tag v2.4.1, fix commit 23d1934), which binds the OAuth state to the initiating browser session and validates it in the callback; the same commit applies RequireSecureSession() to backup and auto-backup mutation endpoints, so upgrading also closes the JWT-only-session bypass on those routes. There is no configuration switch that makes pre-2.4.1 validate the state parameter, so if Casdoor SSO is configured, upgrading is the only complete fix. If immediate upgrade is not possible, the highest-value compensating control is to remove the exposure of the Casdoor login/callback path to untrusted users - restrict the Nginx UI administrative interface, including the callback endpoint, to a trusted management network or VPN, accepting the trade-off that legitimate SSO users must also be on that network or tunnel. Disabling Casdoor SSO and reverting to local password authentication eliminates the vulnerable flow entirely, at the cost of losing centralized identity management; enabling shorter session lifetimes and auditing/revoking unexpected sessions limits the persistence of any session minted before the patch is applied. Because exploitation requires victim interaction, user awareness also has a role: instruct administrators not to open unsolicited Nginx UI or Casdoor login links from external sources, though this is a weak control compared with patching. Review the advisory at https://github.com/0xJacky/nginx-ui/security/advisories/GHSA-44xr-mrhh-qm78 for the vendor's own guidance and confirm the deployed version before and after remediation.
Affected VersionsENISA
Affected Packages
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 management front end for the Nginx web server, and the affected code lives in its Casdoor single-sign-on integration (GetCasdoorUri and CasdoorCallback). In OAuth 2.0 / OIDC authorization-code flows, the 'state' parameter is meant to be an unpredictable, per-session value echoed back by the identity provider so the client can verify that the callback corresponds to a login the same browser actually initiated; it is the primary CSRF defense for the redirect endpoint. Here GetCasdoorUri set state to the configured Casdoor application name - a static, publicly inferable constant - and CasdoorCallback accepted any submitted state without comparing it to a value bound to the initiating session, so the fix is classified CWE-287 (Improper Authentication). The practical consequence is a login-CSRF: the callback exchanges an attacker-obtained authorization code and creates an authenticated Nginx UI session in the victim's browser context, effectively logging the victim in as the attacker's Casdoor identity, which is why confidentiality impact is rated High while integrity is Limited and availability None. The referenced fix commit 23d1934 also hardens adjacent surface by requiring middleware.RequireSecureSession() on backup and auto-backup mutation endpoints (create, modify, delete, restore, S3 test), preventing JWT-only sessions - for example OTP-enabled accounts that have not completed the second factor - from performing those mutations. The CPE entry cpe:2.3:a:0xjacky:nginx-ui:*:*:*:*:*:*:*:* with a wildcard version matches all releases prior to the fix, confirming the entire pre-2.4.1 line is in scope when Casdoor is enabled.
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
AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:L/A:N
Unauthenticated and network-reachable (PR:N/AV:N) with a predictable constant state (AC:L), but requires victim to click a link (UI:R); successful session minting grants admin-panel access (C:H), with limited integrity and no availability impact.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
Nginx UI is a web user interface for the Nginx web server. Prior to 2.4.1, GetCasdoorUri uses the configured Casdoor application name as a constant OAuth state value and CasdoorCallback does not compare the submitted state with a value bound to the initiating browser session. An unauthenticated attacker can cause a victim's browser to complete an attacker-controlled Casdoor authorization flow, and the callback can mint a Nginx UI session for the identity returned by that authorization code. This issue is fixed in version 2.4.1.
Articles & Coverage 2
Executive ViewAI
A high-severity authentication-bypass flaw in Nginx UI allows an unauthenticated attacker to obtain a fully valid administrative session for an identity of their choosing on any deployment that uses Casdoor OAuth/SSO for login. Exploitation requires tricking an employee into clicking a crafted authorization link, but the payoff is unauthorized control of the same management console that governs production web traffic and certificate handling. Because the vulnerable component is a management plane, leadership should treat successful exploitation as equivalent to handing an outsider the keys to ingress infrastructure, and should prioritize exposure reduction and log review over waiting for a vendor fix.
No vendor-released patch identified at time of analysis. Interim mitigations: disable Casdoor OAuth/SSO and revert to local authentication on affected Nginx UI instances; restrict management-console reachability to a trusted VPN, jump host, or internal-only network segment; enforce strict redirect-URI allowlisting on the Casdoor application so authorization codes are only accepted by known Nginx UI hostnames; require phishing-resistant MFA at the identity provider so a victim-completed flow cannot silently bind an attacker-chosen identity; and monitor Nginx UI authentication logs for session creation without a matching local login, alerting on sessions for unexpected identities or unfamiliar source addresses.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
Unauthenticated backup download and RCE in Nginx UI before 2.3.3. EPSS 1.0%. PoC available.
Nginx UI is a web user interface for the Nginx web server. Rated high severity (CVSS 8.9), this vulnerability is remotel
Unauthenticated attackers can hijack the administrator account during nginx-ui's first-run installation window by claimi
Nginx UI is a web user interface for the Nginx web server. Rated high severity (CVSS 7.7), this vulnerability is remotel
nginx-ui prior to version 2.3.8 exposes sensitive configuration values including node.secret via an authenticated GET /a
Nginx-UI is a web interface to manage Nginx configurations. Rated critical severity (CVSS 9.8), this vulnerability is re
Authenticated administrators of Nginx UI releases 2.3.8 through 2.4.x can achieve remote code execution on the host by a
Remote code execution as root in nginx-ui versions before 2.3.8 via unauthenticated backup restore within 10-minute star
Configuration-validation bypass in Nginx UI (versions 2.0.0-rc.6 through 2.4.0) lets an authenticated low-privilege user
Nginx UI installations before 2.4.1 expose two account-security endpoints, POST /api/otp_enroll and POST /api/finish_pas
Configuration validation bypass in Nginx UI (nginx-ui) prior to 2.4.1 lets an authenticated user with configuration-writ
Ordinary authenticated users of clustered Nginx UI deployments can read the cluster node token from the JSON responses o
EUVD-2026-97963
GHSA-44xr-mrhh-qm78
NVD
CVE.org
EPSS
Exploit-DB