Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate to Nginx UI with backup rights
-
DeliveryCraft backup embedding symlink to config path
-
ExploitRestore archive, symlink planted in staging
-
ExecutionWrite regular file through the link
-
ImpactPersistently inject config or trigger DoS
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling Symlink resolution safety
|
| Exploitation Conditions | Exploitation requires an authenticated Nginx UI account (PR:L) that holds permission to create AND restore backups - the attacker must be able to supply a crafted backup archive and invoke the restore operation. The specific precondition is use of the internal/backup/restore.go restore path in versions 2.0.0 through 2.4.x, which extracts inner archives and creates symlinks before enforcing the restore_nginx and restore_nginx_ui flags; the attack succeeds even when both flags are false. Limiting factors: this is not remote-unauthenticated (a valid backup-capable login is mandatory), impact lands only after the tampered configuration files are later consumed by Nginx, and upgrading to 2.5.0 fully remediates. No special non-default Nginx UI configuration beyond the standard backup/restore feature is needed. |
| Impact | This is a credible, above-average-priority issue but not a drop-everything emergency. The CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H, base 8.1 HIGH) is internally consistent with the description: the backup/restore workflow is reachable over the network through the Nginx UI web interface (AV:N), requires no victim interaction (UI:N), and demands only a low-privilege authenticated account that can create and restore backups (PR:L). The confidentiality impact is correctly N (the flaw writes files rather than reading them), while integrity (persistent config injection) and availability (DoS when malformed files are consumed by Nginx) are both High. There is NO CISA KEV listing and NO public exploit code referenced in the provided data, so exploitation status is 'no public exploit identified at time of analysis' - EPSS was not supplied and cannot be cited. No SSVC decision data was provided. The key limiting factor is the PR:L prerequisite: an attacker must already hold a valid Nginx UI account with backup privileges, which substantially narrows the realistic threat to malicious or compromised internal users rather than anonymous internet-wide scanning. Signals are not conflicting - the moderately high CVSS is driven by the I:H/A:H combination and offset in practice by the authentication requirement and the absence of any exploitation evidence. |
| Exploit ScenarioDerived | An authenticated Nginx UI user with backup/restore permissions crafts a malicious backup archive whose inner tree contains a symlink pointing at the live Nginx configuration path, then restores it; because symlinks are created before the restore_nginx/restore_nginx_ui flags are enforced, a subsequent regular-file write follows the link and overwrites the real config even with both restore flags set to false. No public exploit code was identified in the provided data, but the fix commit (a467ed6) and advisory confirm the mechanism. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 09, 2026
Authenticated users of Nginx UI 2.0.0 through 2.4.x who hold permission to create and restore backups can persistently inject modified Nginx configuration or Nginx UI configuration files by crafting a backup archive that carries a symlink pointing at the live configuration path, achieving this even when the restore_nginx and restore_nginx_ui flags are both false. The flaw (CWE-59, link following) stems from the restore path extracting inner archives and materializing symlinks before the restore flags are enforced, so a regular file subsequently written through the staged link lands in the live configuration tree; the resulting tampering takes effect only when those files are later consumed by Nginx, and can produce denial of service. Rated CVSS 8.1 (AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H), this requires a valid backup-capable login (PR:L) and is not a remote-unauthenticated attack, and no public exploit code was identified at time of analysis; vendor-released patch: 2.5.0 fully remediates the issue.
RemediationAI
Upgrade Nginx UI to version 2.5.0, which is the vendor-released patch that rewrites the extraction pipeline to create symlinks last and confine writes via os.OpenRoot, per the advisory at https://github.com/0xJacky/nginx-ui/security/advisories/GHSA-p8v3-89rh-jxc7 and the release at https://github.com/0xJacky/nginx-ui/releases/tag/v2.5.0 (fix commit a467ed652591fc0cd1b466a1ec751b493faef9f7). Until upgrading, restrict backup create/restore privileges to a minimal set of trusted administrators, since any account that can both author and restore a backup can exploit the flaw - this narrows the attack surface but does not eliminate risk from a compromised or malicious admin. Alternatively, disable the backup/restore feature if it is not operationally required, accepting the loss of a convenience workflow, and treat all inbound backup archives as untrusted by inspecting them for symlink entries before restoring; this is a manual, error-prone control that depends on operator diligence. Because impact materializes only when Nginx later consumes the tampered files, add file-integrity monitoring over the live Nginx configuration and Nginx UI settings directories to detect unexpected writes, and run Nginx UI with least privilege so a redirected write cannot escalate beyond the service account's reach.
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-based web interface for administering the Nginx web server, and the defect lives in its backup/restore subsystem (internal/backup/restore.go), which is exposed through the authenticated API handler api/backup/restore.go. The root cause is a link-following / symlink-handling weakness (CWE-59) during archive extraction: the restore logic unpacked inner archives and created symlinks before it evaluated and applied the restore_nginx and restore_nginx_ui flags, and it permitted symlinks whose targets resolved into the live Nginx configuration path. An attacker with backup create-and-restore privileges can therefore place a symlink inside the staging tree and then cause a regular file to be written through that link, escaping the intended restore boundary. The upstream fix restructures extraction into a dedicated internal/backup/extract.go module that uses os.OpenRoot for confined writes and deliberately creates all symlinks last, so no later archive entry can redirect a file or directory write through a link; it also introduces a manifest trust model (TrustLevel, SkippedSettings, ManifestTrustPortable/ManifestTrustCurrentServer) and caps archive symlink target size at 16 KiB. The affected component is tracked as cpe:2.3:a:0xjacky:nginx-ui:*:*:*:*:*:*:*:*, and the tags (Denial Of Service, Nginx, Nginx Ui) align with the two realized outcomes: sustained configuration injection and denial of service once Nginx consumes the altered files.
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:N/I:H/A:H
Backup/restore is network-reachable (AV:N) and reliable (AC:L) but needs a low-privilege backup-capable account (PR:L); symlink write yields config integrity loss and DoS (I:H/A:H) with no read primitive (C:N).
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, internal/backup/restore.go extracts inner archives before applying the restore_nginx and restore_nginx_ui flags and permits symlinks targeting the live Nginx configuration path. An authenticated user who can create and restore backups can craft a valid backup that places a symlink in the staging tree and then writes a regular file through that link, even when both restore flags are false. This can persistently inject configuration or cause denial of service when the modified files are later consumed. This issue is fixed in version 2.5.0.
Articles & Coverage 1
Technical POC Analysis
CWE-59 (Improper Link Resolution Before File Access / Link Following), also tagged CWE-61 in the advisory.
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
A flaw in Nginx UI (versions 2.0.0 through 2.4.x) allows any user with backup-creation privileges to silently overwrite the live Nginx and Nginx UI configuration through a crafted backup archive, meaning a single low-privilege account can disrupt or disable web services the organization depends on. Because the tampering persists in the configuration files themselves, the damage may only surface later during a reload or restart, complicating detection and root-cause analysis. Leadership should care because the exposure is limited to authenticated staff with backup rights, yet the resulting outage and integrity loss can affect every customer-facing service fronted by the affected Nginx instances.
Apply vendor patch.
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
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
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-95894
GHSA-p8v3-89rh-jxc7
NVD
CVE.org
EPSS
Exploit-DB