---
id: "CVE-2026-107808"
kind: "vulnerability"
aliases: ["CVE-2026-107808", "GHSA-45gv-9wjv-xh7p", "GO-2026-6704"]
title: "Nginx UI: Authentication bypass: password login does not enforce a passkey-only second factor (2FA bypass) in github.com/0xJacky/Nginx-UI"
severity: "high"
cvss: 8.1
epss: 0.00413
exploited: false
status: "open"
category: "package"
products: [{"name": "github.com/0xJacky/Nginx-UI", "fixed": ["1.9.10-0.20260728074558-95cd21b70814"], "affected": ">= 1.9.10-0.20250517140552-daee3ac7ade1, < 1.9.10-0.20260728074558-95cd21b70814", "ecosystem": "go"}]
ecosystems: ["go"]
tags: ["go", "nginx", "nginx-ui", "package", "self-hosted"]
not_affected_if: ["managed-hosting", "totp-configured-accounts", "version-2.5.0-or-later", "version-before-2.0.0"]
published_at: "2026-10-09T16:17:25+00:00"
first_seen_at: "2026-10-23T19:13:08+00:00"
updated_at: "2026-10-23T19:52:48+00:00"
sources: [{"source": "govuln", "url": "https://pkg.go.dev/vuln/GO-2026-6704", "first_seen_at": "2026-10-23T19:13:08+00:00"}, {"source": "epss", "url": "https://api.first.org/data/v1/epss?cve=CVE-2026-107808", "first_seen_at": "2026-10-23T19:13:43+00:00"}, {"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-107808", "first_seen_at": "2026-10-23T19:35:23+00:00"}]
---

# Nginx UI: Authentication bypass: password login does not enforce a passkey-only second factor (2FA bypass) in github.com/0xJacky/Nginx-UI

Nginx UI, a web interface for managing Nginx, skips its passkey second factor on password login for accounts that use only a passkey. An attacker who has the account password can log in and reach administrative functions without the passkey.

_Summary, check and fix written by a model from the sources; labelled as such._

## Affected

- go:github.com/0xJacky/Nginx-UI affected >= 1.9.10-0.20250517140552-daee3ac7ade1, < 1.9.10-0.20260728074558-95cd21b70814 fixed 1.9.10-0.20260728074558-95cd21b70814

## How to check

Check whether the Go module github.com/0xJacky/Nginx-UI is in your build, for example with 'go list -m github.com/0xJacky/Nginx-UI' or by checking the version in go.mod.
If you run Nginx UI 2.0.0 through 2.4.x, treat it as exposed, and check whether any account has only a passkey and no TOTP configured.

## Fix

Upgrade Nginx UI to 2.5.0 or later (Go module version 1.9.10-0.20260728074558-95cd21b70814 or newer).
Until you upgrade, rotate passwords for accounts that rely on passkeys and restrict access to the login endpoint.

## Timeline

- 2026-10-23T19:13:08+00:00 govuln https://pkg.go.dev/vuln/GO-2026-6704
- 2026-10-23T19:13:43+00:00 epss https://api.first.org/data/v1/epss?cve=CVE-2026-107808
- 2026-10-23T19:35:23+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-107808

## From the sources

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.

---

_Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai_
