
Cloud Vulnerability DB
A community-led vulnerabilities database
CVE-2026-84312 is a login CSRF (Cross-Site Request Forgery) vulnerability in Nginx UI, a web-based management interface for the Nginx web server. The flaw exists in the Casdoor SSO OAuth flow, where the state parameter is hard-coded to a constant application name rather than a per-session random value, and the callback handler never validates the submitted state against a session-bound value. This allows an unauthenticated attacker to force a victim's browser to complete an attacker-controlled Casdoor authorization flow, resulting in the victim's session being minted for the attacker's identity. All versions prior to 2.4.1 are affected. The vulnerability carries a CVSS v3.1 base score of 7.1 (High) (GitHub Advisory, Feedly).
The root cause is classified under CWE-287 (Improper Authentication) and CWE-352 (Cross-Site Request Forgery). In api/user/casdoor.go, the GetCasdoorUri function sets state := settings.CasdoorSettings.Application — a static, predictable value shared across all users and sessions. The CasdoorCallback function accepts whatever state value the client submits without comparing it to any per-session stored value, unlike the correctly implemented OIDC flow in api/user/oidc.go which generates a random state, stores it in a cookie, and validates it on callback. An attacker initiates their own Casdoor authorization flow to obtain an authorization code, then tricks a victim's browser into submitting that code to the Nginx UI callback endpoint, causing the server to mint a JWT session for the attacker's identity on the victim's browser (GitHub Advisory).
Successful exploitation results in a login CSRF attack where the victim is silently authenticated as the attacker within Nginx UI. The victim, believing they are operating under their own account, may upload TLS keys, configure sites, or modify sensitive Nginx settings — all of which the attacker can then read or leverage. This is particularly dangerous in organizational deployments where Casdoor maps internal identities, as the attacker can attribute malicious configuration changes to the victim. The CVSS assessment reflects high confidentiality impact and low integrity impact with no availability impact (GitHub Advisory).
No public proof-of-concept exploit code or active in-the-wild exploitation has been reported as of the disclosure date. The attack requires user interaction (the victim must visit an attacker-controlled page), but no authentication or special privileges are required from the attacker. The EPSS score is reported as 0.0, and the vulnerability is not currently listed in the CISA Known Exploited Vulnerabilities (KEV) catalog. The advisory credits Vishal Shukla (@shukla304) and Sechub.dev AI Agent as the reporters (GitHub Advisory, Feedly).
/api/auth/casdoor endpoint.code for the attacker's identity.code and the known constant state value (the Casdoor application name) to the victim's Nginx UI callback endpoint (e.g., POST /api/auth/casdoor/callback)./api/auth/casdoor/callback) originating from unusual or external IP addresses; OAuth state parameter values in callback requests matching the static Casdoor application name rather than a random token.state value equal to the configured Casdoor application name from IPs not associated with the legitimate user; multiple callback requests in rapid succession from different source IPs using the same code._nginx_ui_secure_session cookies issued to sessions that did not originate from a normal login flow; JWT tokens issued for the attacker's Casdoor identity appearing in victim browser sessions.Upgrade Nginx UI to version 2.4.1 or later, which fixes the vulnerability by generating a cryptographically random state value per login attempt, storing it in a casdoor_state cookie, and validating it on callback — mirroring the correct OIDC implementation (GitHub Release, GitHub Commit). As a temporary workaround for those unable to upgrade immediately, disable Casdoor SSO entirely and use the OIDC integration (api/user/oidc.go), which is correctly implemented with proper state validation (GitHub Advisory).
Source: This report was generated using AI
Free Vulnerability Assessment
Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.
Get a personalized demo
"Best User Experience I have ever seen, provides full visibility to cloud workloads."
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
"We know that if Wiz identifies something as critical, it actually is."