Authentication bypass in Nginx UI lets password login skip passkey 2FA
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- None
- Attack complexity
- High
- Impact type
- Security bypass
- Confidentiality · integrity · availability
- High · High · High
- Fix status
- Fixed
Attack profile from CVSS 3.1 · CNA. Fix status from CNA and GitHub. Impact type from CWE-287.
Summary
Nginx UI from 2.0.0 before 2.5.0 has an authentication bypass (CWE-287). The POST /api/login endpoint does not require a passkey assertion when a passkey is enabled and no TOTP secret is configured, so a passkey-only account receives a session after password verification. An attacker who obtains the password can take over the account and reach administrative functionality without the registered passkey. A public exploit is linked in the references.
Written with Claude Haiku 5.5 from the sources below · 2026-10-29
Description from the CNA
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.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- Poc
- Automatable
- No
- Technical impact
- Total
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| 0xJacky | nginx-ui | 2.0.0 to before 2.5.0 | 2.5.0 | Patch available | CNA |
| — | github.com/0xJacky/Nginx-UI (Go) | 1.9.10-0.20250517140552-daee3ac7ade1 to before 1.9.10-0.20260728074558-95cd21b70814 | 1.9.10-0.20260728074558-95cd21b70814 | Patch available | GHSA-45gv-9wjv-xh7p |
- nginx-ui Vendor0xJacky Affected 2.0.0 to before 2.5.0 Fixed in 2.5.0 Patch available CNA
- github.com/0xJacky/Nginx-UI (Go) Vendor— Affected 1.9.10-0.20250517140552-daee3ac7ade1 to before 1.9.10-0.20260728074558-95cd21b70814 Fixed in 1.9.10-0.20260728074558-95cd21b70814 Patch available GHSA-45gv-9wjv-xh7p
Remediation
Nginx UI 2.5.0 fixes this issue, so upgrade to that version. The Go module github.com/0xJacky/Nginx-UI is fixed in version 1.9.10-0.20260728074558-95cd21b70814.
Written with Claude Haiku 5.5 from the sources below · 2026-10-29
- Fix · CNA nginx-ui (0xJacky) Fixed in 2.5.0
- Fix · GHSA-45gv-9wjv-xh7p github.com/0xJacky/Nginx-UI (Go) Fixed in 1.9.10-0.20260728074558-95cd21b70814 Advisory →
Timeline
- 2026-10-09 Threatist record created from CVE-2026-107808
- 2026-10-09 Alias added: GHSA-45gv-9wjv-xh7p
References
More 0xJacky Nginx Ui vulnerabilities
- TI-2026-25478 Nginx UI: Unauthenticated MCP Endpoint Allows Remote Nginx Takeover CVSS 3.1CRITICAL 9.8
- TI-2026-25472 nginx-ui Backup Restore Allows Tampering with Encrypted Backups CVSS 4.0CRITICAL 9.4
- TI-2026-22288 Nginx UI: Unauthenticated Backup Download with Encryption Key Disclosure CVSS 3.1CRITICAL 9.8
- TI-2024-15821 Nginx-UI arbitrary file write through the Import Certificate feature CVSS 3.1CRITICAL 9.8
- TI-2026-70057 Code injection in Nginx UI backup restore allows code execution CVSS 4.0CRITICAL 9.4
- TI-2026-32056 Nginx UI: Server-Side Request Forgery (SSRF) via Cluster Proxy Middleware Allows Access to Internal Services CVSS 3.1CRITICAL 9.9
Sources
- CVE-2026-107808 · CVE Program
- CVE-2026-107808 · NVD
- FIRST EPSS
- GHSA-45gv-9wjv-xh7p · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences