Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAccess leaked node_secret from logs or Referer
-
ExploitReplay secret via node_secret query parameter
-
ExecutionBypass password, JWT, session, and 2FA checks
-
ImpactGain 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. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – 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
Affected Packages
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
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
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.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.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.
Articles & Coverage 1
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
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.
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
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
Unauthenticated backup download and RCE in Nginx UI before 2.3.3. EPSS 1.0%. PoC available.
Nginx UI is a web user interface for the Nginx web server. Rated high severity (CVSS 8.9), this vulnerability is remotel
Unauthenticated attackers can hijack the administrator account during nginx-ui's first-run installation window by claimi
Nginx UI is a web user interface for the Nginx web server. Rated high severity (CVSS 7.7), this vulnerability is remotel
nginx-ui prior to version 2.3.8 exposes sensitive configuration values including node.secret via an authenticated GET /a
Nginx-UI is a web interface to manage Nginx configurations. Rated critical severity (CVSS 9.8), this vulnerability is re
Authenticated administrators of Nginx UI releases 2.3.8 through 2.4.x can achieve remote code execution on the host by a
Remote code execution as root in nginx-ui versions before 2.3.8 via unauthenticated backup restore within 10-minute star
Configuration-validation bypass in Nginx UI (versions 2.0.0-rc.6 through 2.4.0) lets an authenticated low-privilege user
Nginx UI installations before 2.4.1 expose two account-security endpoints, POST /api/otp_enroll and POST /api/finish_pas
Configuration validation bypass in Nginx UI (nginx-ui) prior to 2.4.1 lets an authenticated user with configuration-writ
Ordinary authenticated users of clustered Nginx UI deployments can read the cluster node token from the JSON responses o
EUVD-2026-95882
GHSA-pvgv-gcp7-v38g
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB