CVE-2026-84314: Nginx UI Account Takeover Vulnerability
HIGHCVE-2026-84314 is a HIGH account takeover vulnerability (CWE-285: Improper Authorization) affecting Nginx UI libraries in the Go ecosystem. The issue involves account takeover via missing `requiresecuresession` on user management endpoint. Remediation is available by upgrading affected packages to version 1.9.10-0.20260703131214-23d1934099b0.
CVE-2026-84314 at a Glance
How to Fix CVE-2026-84314
To remediate this vulnerability, upgrade all affected Nginx UI dependencies to a patched release. Both direct and transitive dependencies should be checked, as frameworks or security libraries may pull in vulnerable versions transitively.
Upgrade github.com/0xJacky/Nginx-UI to 1.9.10-0.20260703131214-23d1934099b0
Run the following command in your project directory to verify that all resolved dependencies use the patched release:
inspect dependencies for github.com/0xJacky/Nginx-UI
How to Check if You Are Affected
To determine whether your application is affected by CVE-2026-84314, inspect your project dependencies for Nginx UI:
inspect dependencies for github.com/0xJacky/Nginx-UI
Analyze the terminal output to locate any version of Nginx UI in your dependency tree. If any resolved version matches the vulnerable ranges listed in the table below (for example, versions earlier than 1.9.10-0.20260703131214-23d1934099b0), your application is affected.
Note: Verify declared build manifests and deployed runtime container environments.
Technical Details
Vulnerability Mechanism & Technical Analysis
This vulnerability is classified under CWE-285: Improper Authorization, where the product does not perform or incorrectly performs an authorization check when an actor attempts to access a resource or perform an action. In Nginx UI, software state validation or input boundaries are circumvented during processing. Review the official source advisory statement below for specific affected components, classes, and reproduction details.
Source Advisory Statement
CVE-2026-84314 Affected Nginx UI Versions
1 component(s)| Product / Package | Ecosystem | Affected Versions | Fixed Version |
|---|---|---|---|
|
github.com/0xJacky/Nginx-UI
|
Go |
< 1.9.10-0.20260703131214-23d1934099b0
|
1.9.10-0.20260703131214-23d1934099b0
|
References
Frequently Asked Questions
What is CVE-2026-84314?
Which Nginx UI versions are affected?
What version fixes CVE-2026-84314?
Is github.com/0xJacky/Nginx-UI affected?
What CWE is associated with CVE-2026-84314?
How can I check Go dependencies for CVE-2026-84314?
Machine-readable OSV JSON
OSV v1.5 Schema
{
"schema_version" : "1.4.0",
"id" : "GHSA-2gc7-j998-5xx6",
"modified" : "2026-10-15T20:11:45Z",
"published" : "2026-10-15T20:11:45Z",
"aliases" : [ "CVE-2026-84314" ],
"summary" : "Nginx UI: Account Takeover via Missing `RequireSecureSession` on User Management Endpoint",
"details" : "### Summary\n`POST /api/users/:id` allows any authenticated user to change any other user's password without `RequireSecureSession` (2FA verification). In contrast, the self password change endpoint `POST /api/user/password` correctly requires `RequireSecureSession`. This inconsistency enables any authenticated user to take over the initial admin account (user ID 1) by simply changing its password.\n\n### Details\nnginx-ui enforces `RequireSecureSession` middleware on sensitive operations such as self password change (`api/user/router.go:55`), self profile update (`api/user/router.go:54`), settings modification (`api/settings/router.go:12`), and config file deletion/rename (`api/config/router.go:16-21`).\n\nHowever, the user management endpoint registered in `InitManageUserRouter` (`api/user/user.go:31-68`) is mounted on the `g` router group (`router/routers.go:92`) which only applies `middleware.AuthRequired()` and `middleware.Proxy()` — **no `RequireSecureSession()`**.\n\nAs a result, `POST /api/users/:id` with a `password` field in the JSON body updates the target user's password with only basic JWT authentication. No 2FA or secure session verification is performed, even if the target user has 2FA enabled.\n\nThe attack flow:\n\n1. Attacker authenticates as any user (e.g., user ID 2).\n2. Attacker sends `POST /api/users/1` with `{\"password\": \"attacker-chosen\"}`.\n3. Admin (user ID 1) password is changed. All existing admin tokens are invalidated (`api/user/user.go:48-49`).\n4. Attacker logs in as admin with the new password.\n5. Admin is locked out.\n\n\n### PoC\n[poc.zip](https://github.com/user-attachments/files/26971275/poc.zip)\n\nPlease extract the uploaded compressed file before proceeding\n\n1. docker compose up -d\n2. python3 poc.py\n\n<img width=\"501\" height=\"55\" alt=\"스크린샷 2026-04-22 오후 10 26 29\" src=\"https://github.com/user-attachments/assets/6562ede2-7c11-48da-b905-be9964f4f7b1\" />\n\n\n### Impact\n- Any authenticated user can change any other user's password, including the initial admin (user ID 1).\n- Full account takeover of the admin account.",
"severity" : [ {
"type" : "CVSS_V4",
"score" : "CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X"
} ],
"affected" : [ {
"package" : {
"ecosystem" : "Go",
"name" : "github.com/0xJacky/Nginx-UI"
},
"ranges" : [ {
"type" : "ECOSYSTEM",
"events" : [ {
"introduced" : "0"
}, {
"fixed" : "1.9.10-0.20260703131214-23d1934099b0"
} ]
} ]
} ],
"references" : [ {
"type" : "WEB",
"url" : "https://github.com/0xJacky/nginx-ui/security/advisories/GHSA-2gc7-j998-5xx6"
}, {
"type" : "ADVISORY",
"url" : "https://nvd.nist.gov/vuln/detail/CVE-2026-84314"
}, {
"type" : "WEB",
"url" : "https://github.com/0xJacky/nginx-ui/commit/23d1934099b05b2a01589b48129dc3d3159d91c2"
}, {
"type" : "PACKAGE",
"url" : "https://github.com/0xJacky/nginx-ui"
}, {
"type" : "WEB",
"url" : "https://github.com/0xJacky/nginx-ui/releases/tag/v2.4.1"
} ],
"database_specific" : {
"cwe_ids" : [ "CWE-285" ],
"severity" : "HIGH",
"github_reviewed" : true,
"github_reviewed_at" : "2026-10-15T20:11:45Z",
"nvd_published_at" : "2026-10-12T21:17:21Z"
}
}