CVE-2026-33031
highpriority · track · 32OT risk · elevatedEPSS 0.003 · 20 %ileDEEUUSEPSS · scored 2026-10-27
Nginx UI is a web user interface for the Nginx web server. Prior to version 2.3.4, a user who was disabled by an administrator can use previously issued API tokens for up to the token lifetime. In practice, disabling a compromised account does not actually terminate that user’s access, so an attacker who already stole a JWT can continue reading and modifying protected resources after the account is marked disabled. Since tokens can be used to create new accounts, it is possible the disabled user to maintain the privilege. Version 2.3.4 patches the issue.
cvss
Technical severity, 0–10. One row per scoring source.
base score 0–10 · higher = more severe · hover a vector to decode⚠ sources disagree · medium–high · 6.2–8.6
ssvc
A stakeholder decision — act, attend, or track — from exploitation and impact.
weaknesses
The CWE weakness classes this flaw belongs to.
affected products (7)
Products and version ranges known to be affected.
- Go github.com/0xJacky/Nginx-UI< 1.9.10-0.20260314152518-7b66578adb47osvUSpkg:golang/github.com/0xJacky/Nginx-UI
advisories (3)
Vendor and ecosystem advisories describing this.
- WID-SEC-W-2026-1188nginx-ui: Mehrere Schwachstellen ermöglichen Umgehen von SicherheitsvorkehrungenDeutsch2026-04-20csaf · cert_bundDE
Ein Angreifer kann mehrere Schwachstellen in nginx-ui ausnutzen, um Sicherheitsvorkehrungen zu umgehen, wodurch weitere Angriffe ermöglicht werden.
- GHSA-x234-x5vq-cc2vNginx-UI: Disabled users retain full API access through previously issued bearer tokens2026-04-21ghsa · osvUS
### Summary A user who was disabled by an administrator can use previously issued API tokens for up to the token lifetime. In practice, disabling a compromised account does not actually terminate that user’s access, so an attacker who already stole a JWT can continue reading and modifying protected resources after the account is marked disabled. Since tokens can be used to create new accounts, it is possible the disabled user to maintain the privilege. ### Details The application exposes an account-level disable control through the users management API. Login process correctly enforces that control: https://github.com/0xJacky/nginx-ui/blob/6ec542fd97abf2c5950f374f78a32938ad0030e6/internal/user/login.go#L29-L31 However, token-based authentication does not enforce the same check (This code validates token structure and expiry, but returns that user object without checking `user.Status`.): https://github.com/0xJacky/nginx-ui/blob/6ec542fd97abf2c5950f374f78a32938ad0030e6/internal/user/user.go#L44-L139 There’s also no token revocation feature, unlike when a password is changed: https://github.com/0xJacky/nginx-ui/blob/6ec542fd97abf2c5950f374f78a32938ad0030e6/api/user/user.go#L38-L51 As a result, a disabled user can continue to have full API access. In particular, since that includes account creation, they can create a new account and keep operating even after the JWT expires. ### PoC The issue was validated with version 2.3.3 using the `uozi/nginx-ui:sha-c92ec0a` docker image. View the PoC video: https://github.com/user-attachments/assets/7a5175cb-2f79-4c1b-adad-e7d0bf2ea2bd ### Impact Administrators who rely on "disable user" as an authentication or authorization control can be bypassed. The disabled user can keep reading sensitive configuration and executing authenticated state-changing actions allowed to that account.
- GO-2026-5733Nginx-UI: Disabled users retain full API access through previously issued bearer tokens in github.com/0xJacky/Nginx-UI2026-06-25vendor · osvUS
Nginx-UI: Disabled users retain full API access through previously issued bearer tokens in github.com/0xJacky/Nginx-UI
also known as (5)
Other names and identifiers for this entity.
sources
Which sources assert this record, and when.
references (4)
External citations — patches, advisories, analysis.
Attackers weaponise vulnerabilities like this against internet-exposed services. See what is exposed on your perimeter with a free passive scan.
Free scan