Skip to main content

Nginx UI CVE-2026-107807

| EUVDEUVD-2026-95882 HIGH
Cleartext Storage of Sensitive Information (CWE-312)
2026-10-09 GitHub_M GHSA-pvgv-gcp7-v38g
8.8
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Access leaked node_secret from logs or Referer
  2. Exploit
    Replay secret via node_secret query parameter
  3. Execution
    Bypass password, JWT, session, and 2FA checks
  4. Impact
    Gain persistent admin API access to config and secrets

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V14 - Data Protection Encrypted storage of sensitive data
Exploitation Conditions

Exploitation requires two concrete conditions. First, the Node.Secret must actually have been transmitted via the node_secret query parameter in an HTTP or WebSocket authentication request (the vulnerable path in versions 2.0.0-2.4.x that use node/cluster authentication) rather than via the X-Node-Secret header, so that it is written into a sink - access logs, reverse-proxy logs, browser history, Referer headers, configuration URLs, or deployment environment data. Second, the attacker must gain read access to one of those sinks to recover the plaintext secret. Limiting factors that reduce realistic risk: the feature must be in use (node clustering / Node.Secret auth), the secret must have been passed as a query parameter in practice, and the attacker needs access to a log/history source - none of which are guaranteed in a default single-node install. Once the secret is obtained, however, no further authentication, user interaction, or privilege is needed to gain admin API access.

Impact

The vendor CVSS of 8.8 (CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) rates this HIGH, and the impact is genuinely severe: possession of the Node.Secret master credential bypasses password, JWT, session, and second-factor checks for persistent administrative API access to configuration and secret material. However, the vendor vector arguably understates the complexity. The root issue (CWE-312) is that the credential is ACCEPTED via the node_secret query parameter, causing it to be recorded in access logs, proxy logs, browser history, Referer headers, config URLs, and deployment environment data. Actual exploitation therefore depends on an attacker first OBTAINING the leaked secret from one of those secondary sinks - a prerequisite the AC:L/PR:L rating does not fully capture, so the AC:L assignment is debatable (see assessed vector below). No EPSS score, CISA KEV listing, or public POC was provided in the intelligence set, so there is no public exploit identified at time of analysis and no evidence of active or widespread exploitation. Net: a real and high-impact credential-exposure/auth-bypass issue worth prioritizing wherever Nginx UI node clustering with Node.Secret auth is deployed, but current signals point to opportunistic/targeted risk (requires log or history access) rather than mass internet-wide exploitation. Verify the exact affected deployment mode with the GHSA advisory.

Exploit ScenarioDerived

An administrator or cluster component authenticates to Nginx UI by passing the Node.Secret in the node_secret query parameter, which is then captured in reverse-proxy access logs, browser history, or a Referer header. An attacker with read access to any of those sinks extracts the plaintext secret and replays it against the HTTP or WebSocket authentication paths, bypassing password, JWT, session, and 2FA checks to obtain persistent administrative API access. No public exploit code was identified at time of analysis.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 09, 2026

Credential exposure in Nginx UI 2.0.0 through 2.4.x allows anyone who recovers the Node.Secret master credential to bypass password, JWT, session, and second-factor checks and obtain persistent administrative API access to configuration and secret material. Versions in that range accept the Node.Secret through the node_secret query parameter on HTTP and WebSocket authentication paths instead of requiring the X-Node-Secret header, so the credential can leak into access logs, reverse-proxy logs, browser history, Referer headers, configuration URLs, and deployment environment data. Exploitation is conditional rather than trivial: node/cluster authentication must actually be in use, the secret must have been transmitted as a query parameter in practice, and the attacker must have read access to one of those sinks; no public exploit code has been identified at time of analysis, and the vendor rates this 8.8 (CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) while our independent assessment scores it AV:N/AC:H/PR:N/UI:N with the same High confidentiality, integrity, and availability impact.

RemediationAI

Upgrade to Nginx UI 2.5.0, the vendor-released patch version (release notes at https://github.com/0xJacky/nginx-ui/releases/tag/v2.5.0, remediation commit a3999bd78a3b97ab22e6b5e9fd478ac57598a954, advisory https://github.com/0xJacky/nginx-ui/security/advisories/GHSA-pvgv-gcp7-v38g), and do not stop there - treat the Node.Secret as compromised if it was ever passed as a query parameter: rotate the master credential on every clustered node after upgrading so previously leaked values are useless, and re-enroll peers so they authenticate with the X-Node-Secret header through the new nodeauth client. Then purge the exposure sinks themselves: scrub or rotate the affected access logs, reverse-proxy logs, and audit records; delete saved URLs and history entries containing node_secret; remove the secret from configuration files, CI/CD variables, and deployment environment data; and check third-party systems that captured Referer headers. Where immediate upgrade is impossible, the highest-value compensating controls are to stop all query-string node authentication at the edge - for example a reverse-proxy rule that rejects or strips requests containing a node_secret parameter (side effect: breaks any cluster peer or script still passing the secret in the URL, so those callers must be converted to the X-Node-Secret header first), to strictly restrict read access to Nginx UI and Nginx log directories and log-aggregation indexes to trusted administrators (this reduces but does not remove the leak, since history, Referer, and environment sinks remain), and to block or disable node/cluster authentication entirely if clustering is not needed (side effect: loss of multi-node management until the upgrade and credential rotation are completed). Because the mechanism is a shared master secret, network ACLs that limit the administrative API to trusted management networks add meaningful defense while rotation is in progress, but none of these workarounds is a substitute for upgrading to 2.5.0.

Affected VersionsENISA

nginx-ui 2.0.0, < 2.5.0

Affected Packages

go github.com/0xjacky/nginx-ui fix: 1.9.10-0.20260728074433-a3999bd78a3b
euvd nginx_ui_2_0_0 fix: 2.5.0

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 2 packages in go, euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Nginx UI is a Go/Gin web front end for the Nginx web server, and its node-clustering feature authenticates peer nodes with a shared master credential called Node.Secret (internally node.Token), which in the vulnerable code paths was accepted both from the X-Node-Secret header and from a node_secret query parameter on HTTP and WebSocket authentication routes. Because query strings are routinely persisted by intermediaries, the shared secret is written in cleartext into audit logs, Nginx/proxy access logs, browser history, Referer headers, request URLs embedded in configuration, and deployment environment data - the root-cause class captured by CWE-312 (cleartext storage of sensitive information), effectively a sensitive-data-in-query-string weakness layered on a header-or-parameter authentication design. The severity comes from what the credential is: possession of Node.Secret short-circuits the normal user authentication stack (password, JWT, session, and 2FA) and yields persistent administrative API access, so exposure of the value is equivalent to a full administrative compromise. The CPE cpe:2.3:a:0xjacky:nginx-ui:*:*:*:*:*:*:*:* flags the whole product line, with the description pinning affected releases to 2.0.0 through 2.4.x. The fixing commit a3999bd78a3b97ab22e6b5e9fd478ac57598a954 introduces an internal/nodeauth package (NewRestyClient) so cluster calls carry the credential as the X-Node-Secret header, replaces direct resty clients in the cluster reload/restart paths, and adds audit middleware that redacts Authorization and X-Node-Secret headers and the node_secret query parameter, plus MarkSensitiveRequest/MarkSensitiveResponse markers that suppress request and response bodies from audit storage. Note that the independent assessment treats the attack as unauthenticated (PR:N) because using a recovered secret requires no prior credential, whereas the vendor vector lists PR:L.

Know when Nginx Ui gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (GitHub_M) PRIMARY 8.8 HIGH
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
vuln.today AI 8.1 HIGH

AV:N and full C/I/H/A match complete admin takeover once the secret is used; AC:H because exploitation depends on the secret having leaked to a sink and the attacker obtaining it; PR:N since a recovered master secret bypasses all authentication.

3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
4.0 AV:N/AC:H/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

2
Patch available
Oct 09, 2026 - 17:02 EUVD
CVE Published
Oct 09, 2026 - 15:04 cve.org
HIGH 8.8

DescriptionCVE.org

Nginx UI is a web user interface for the Nginx web server. From 2.0.0 until 2.5.0, Nginx UI accepts the Node.Secret master credential through the node_secret query parameter in HTTP and WebSocket authentication paths instead of requiring the X-Node-Secret header. The credential can consequently appear in access logs, proxy logs, browser history, Referer headers, configuration URLs, and deployment environment data. A party that obtains the secret can bypass normal password, JWT, session, and second-factor checks and obtain persistent administrative API access, including access to configuration and secret material. This issue is fixed in version 2.5.0.

Technical POC Analysis

CWE-312 (Cleartext Storage of Sensitive Information), with CWE-598 as the mechanism.

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

Nginx UI versions 2.0.0 through 2.4.x accept a cluster master credential (Node.Secret) through URL query parameters, meaning a copy captured in web server logs, proxy logs, browser history, or deployment configuration can be replayed to obtain persistent administrative control over Nginx configuration and stored secrets. The exposure is conditional - node/cluster authentication must be enabled and the secret must have been transmitted in practice as a query parameter - but where those conditions hold, the credential bypasses password, JWT, session, and second-factor checks entirely. Leadership should care because the affected component is a management plane for Nginx infrastructure, so a single leaked credential can cascade into broad service disruption, configuration tampering, and disclosure of secrets managed across the estate; no public exploit code has been identified at time of analysis, but no vendor-released patch is available either.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: rotate Node.Secret immediately and treat any prior exposure as a compromise; disable node/cluster authentication where it is not required; enforce the X-Node-Secret header and strip or reject node_secret query parameters at the reverse proxy or WAF; block node_secret from access logs, proxy logs, and telemetry; restrict Nginx UI administrative interfaces and log stores to trusted networks and least-privilege readers; monitor for node_secret in request URIs and for anomalous administrative API calls; upgrade above the 2.4.x line as soon as the vendor publishes a fixed version.

Threat Intelligence Overview

EPSS Score
0.3%
Top 78% exploitable
Prevalence
Low
self-hosted open-source nginx admin UI, modest production footprint
Threat Intel
1
1 source
Data Quality
4 sources
Confidence: Medium
EUVD NVD CVE.org EPSS Vulnrichment GHSA GitHub VulDB

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

44
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +44
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

CVE-2026-27944 CRITICAL POC
9.8 Mar 05

Unauthenticated backup download and RCE in Nginx UI before 2.3.3. EPSS 1.0%. PoC available.

CVE-2024-49368 HIGH POC
8.9 Oct 21

Nginx UI is a web user interface for the Nginx web server. Rated high severity (CVSS 8.9), this vulnerability is remotel

CVE-2026-42221 HIGH POC
8.1 May 04

Unauthenticated attackers can hijack the administrator account during nginx-ui's first-run installation window by claimi

CVE-2024-49366 HIGH POC
7.7 Oct 21

Nginx UI is a web user interface for the Nginx web server. Rated high severity (CVSS 7.7), this vulnerability is remotel

CVE-2026-42220 MEDIUM POC
6.5 May 04

nginx-ui prior to version 2.3.8 exposes sensitive configuration values including node.secret via an authenticated GET /a

CVE-2024-23827 CRITICAL
9.8 Jan 29

Nginx-UI is a web interface to manage Nginx configurations. Rated critical severity (CVSS 9.8), this vulnerability is re

CVE-2026-107806 CRITICAL
9.4 Oct 09

Authenticated administrators of Nginx UI releases 2.3.8 through 2.4.x can achieve remote code execution on the host by a

CVE-2026-42238 CRITICAL
9.0 May 04

Remote code execution as root in nginx-ui versions before 2.3.8 via unauthenticated backup restore within 10-minute star

CVE-2026-84318 HIGH
8.8 Oct 12

Configuration-validation bypass in Nginx UI (versions 2.0.0-rc.6 through 2.4.0) lets an authenticated low-privilege user

CVE-2026-84313 HIGH
8.8 Oct 12

Nginx UI installations before 2.4.1 expose two account-security endpoints, POST /api/otp_enroll and POST /api/finish_pas

CVE-2026-84316 HIGH
8.8 Oct 12

Configuration validation bypass in Nginx UI (nginx-ui) prior to 2.4.1 lets an authenticated user with configuration-writ

CVE-2026-107811 HIGH
8.8 Oct 09

Ordinary authenticated users of clustered Nginx UI deployments can read the cluster node token from the JSON responses o

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy