Description
Nginx UI is a web user interface for the Nginx web server. Prior to 2.4.1, POST /api/otp_enroll and POST /api/finish_passkey_register are registered outside RequireSecureSession and accept a normal authenticated session without verifying the current password. An attacker with a stolen JWT can bind an attacker-controlled TOTP secret when the victim has not already enabled TOTP, or can register an attacker-controlled passkey because that path has no equivalent existing-enrollment guard. These changes create persistent account access that can survive a password change and interfere with the legitimate user's authentication. This issue is fixed in version 2.4.1.
Published: 2026-10-12
Score: 8.8 High
EPSS: < 1% Very Low
KEV: No
Impact: Persistent account takeover via TOTP or passkey enrollment without re‑authentication
Action: Immediate Patch
AI Analysis

Impact

The flaw allows an attacker with a stolen JWT to enroll a malicious TOTP or passkey for a victim’s account without requiring the user’s current password. Because these enrollment endpoints execute outside the normal session security checks, the attacker can create or overwrite the victim’s two‑factor credentials, giving the attacker ongoing access that persists after the victim changes their password. This results in a complete compromise of the victim’s account, potentially exposing confidential data and administrative control.

Affected Systems

The vulnerability affects the Nginx UI web interface produced by 0xJacky. All releases before version 2.4.1 are susceptible; version 2.4.1 and later include the fix.

Risk and Exploitability

The CVSS score of 8.8 classifies the issue as high severity, and the EPSS score is currently unavailable. The vulnerability is not listed in CISA’s KEV catalog, but the lack of re‑authentication during enrollment makes exploitation straightforward for anyone with a valid session token. An attacker can leverage the exposed endpoints to establish persistent control over a victim’s account without triggering additional authentication prompts.

Generated by OpenCVE AI on October 12, 2026 at 22:51 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade Nginx UI to version 2.4.1 or later.
  • Ensure that session tokens are short‑lived or revoke them immediately after a password change.
  • Monitor system logs for unexpected TOTP or passkey registration events.

Generated by OpenCVE AI on October 12, 2026 at 22:51 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-gfrc-g87h-7h5w Nginx UI: TOTP / passkey enrolment requires no re-authentication, enabling persistent account takeover
History

Thu, 15 Oct 2026 14:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'poc', 'Technical Impact': 'total'}, 'version': '2.0.3'}


Tue, 13 Oct 2026 00:00:00 +0000

Type Values Removed Values Added
First Time appeared 0xjacky
0xjacky nginx-ui
Vendors & Products 0xjacky
0xjacky nginx-ui

Mon, 12 Oct 2026 21:00:00 +0000

Type Values Removed Values Added
Description Nginx UI is a web user interface for the Nginx web server. Prior to 2.4.1, POST /api/otp_enroll and POST /api/finish_passkey_register are registered outside RequireSecureSession and accept a normal authenticated session without verifying the current password. An attacker with a stolen JWT can bind an attacker-controlled TOTP secret when the victim has not already enabled TOTP, or can register an attacker-controlled passkey because that path has no equivalent existing-enrollment guard. These changes create persistent account access that can survive a password change and interfere with the legitimate user's authentication. This issue is fixed in version 2.4.1.
Title Nginx UI: TOTP / passkey enrolment requires no re-authentication, enabling persistent account takeover
Weaknesses CWE-287
CWE-306
References
Metrics cvssV3_1

{'score': 8.8, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H'}


Subscriptions

0xjacky Nginx-ui
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-10-15T13:48:40.557Z

Reserved: 2026-09-01T16:17:43.079Z

Link: CVE-2026-84313

cve-icon Vulnrichment

Updated: 2026-10-15T13:48:33.187Z

cve-icon NVD

Status : Deferred

Published: 2026-10-12T21:17:21.597

Modified: 2026-10-15T14:17:29.597

Link: CVE-2026-84313

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-10-12T23:45:12Z

Weaknesses
  • CWE-287

    Improper Authentication

  • CWE-306

    Missing Authentication for Critical Function