Skip to main content

Nginx UI CVE-2026-84320

| EUVDEUVD-2026-97860 MEDIUM
Path Traversal (CWE-22)
2026-10-12 GitHub_M GHSA-jrq7-xrjx-pcfw
6.3
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Authenticate to Nginx UI with backup-config access
  2. Delivery
    Create/modify automatic backup with traversal in Name
  3. Exploit
    GetName returns unsanitized path components
  4. Execution
    filepath.Join resolves archive outside storage dir
  5. Impact
    Scheduled backup writes archive/key file with process privileges

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling Path canonicalization, traversal prevention
MITRE ATT&CK

2 techniques across 2 tactics: Discovery, Collection

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Requires an authenticated Nginx UI account with permission to create or modify an automatic backup configuration; the attacker sets the backup's Name field to include path separators or parent-directory ('..') components, which AutoBackup.GetName passes through unsanitized into the archive filename. Exploitation only triggers when that automatic backup actually executes, and for the encryption-key write it additionally requires the backup to be configured as an encrypted configuration backup. Limiting factors: authentication and backup-management privileges are mandatory (PR:L), the write is confined to the generated archive/key filename (not arbitrary content into arbitrary files), and impact scales with the privileges of the Nginx UI process. Versions 2.4.3 and later reject separators, '..', Windows reserved characters/device names, and sanitize the name, removing the condition.

Impact

This is a medium-severity, authenticated path traversal (CWE-22) with a vendor/NVD CVSS 3.1 vector of AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:L (6.3). The PR:L metric confirms exploitation requires an authenticated account - specifically one with permission to create or modify an automatic backup - so this is not an unauthenticated internet-facing bug. No EPSS score, SSVC decision, KEV listing, or public POC was provided in the intelligence set; exploitation status is therefore 'no public exploit identified at time of analysis.' The signals are internally consistent (network-reachable admin UI, low complexity, low privileges, no user interaction), but the real-world impact is constrained: the primitive is an arbitrary-location file WRITE of a backup archive (and, for encrypted backups, the adjacent key file) with the Nginx UI process privileges - not a read or direct code-execution primitive. The official vector rates confidentiality as Low, which is debatable since the flaw writes rather than reads files; I independently assess confidentiality impact as negligible (see assessed vectors). Net: a genuine but bounded privilege/integrity issue requiring an existing authenticated foothold, best prioritized where Nginx UI is multi-tenant or exposed, not treated as a critical widespread threat.

Exploit ScenarioDerived

An authenticated Nginx UI user with access to backup configuration creates or edits an automatic backup whose Name contains path separators and parent-directory components (e.g. '..\evil/...'); because AutoBackup.GetName returns the unsanitized name and it is embedded into the archive filename, filepath.Join resolves the output outside the validated storage directory. When the scheduled backup runs, the archive - and for encrypted configuration backups the encryption key file - is written to an attacker-chosen location with the Nginx UI process's privileges, potentially overwriting sensitive files. No public exploit was identified at time of analysis; exploitation requires only low privileges, no user interaction, and low attack complexity (AV:N/AC:L).

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.2% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Oct 12, 2026

Path traversal in Nginx UI (0xJacky) before 2.4.3 allows an authenticated user who can create or modify an automatic backup to write backup archive files - and, when the backup is configured as an encrypted configuration backup, the adjacent encryption key file - outside the validated storage directory, with the privileges of the Nginx UI process. Exploitation requires a valid Nginx UI account with backup-management permissions (CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:L, 6.3 per the independent assessment) and only takes effect when the configured automatic backup actually runs; the attacker influences the generated archive/key filename rather than arbitrary file content. The issue is fixed in version 2.4.3, and no public exploit code was identified at time of analysis.

RemediationAI

Upgrade to Nginx UI 2.4.3 or later, which is the vendor-released fix for this issue; the release is published at https://github.com/0xJacky/nginx-ui/releases/tag/v2.4.3 and the underlying patch is commit f92218e01054491fc1e6684dc6f7facaf8ab41eb, referenced from the advisory GHSA-jrq7-xrjx-pcfw (https://github.com/0xJacky/nginx-ui/security/advisories/GHSA-jrq7-xrjx-pcfw). If you cannot upgrade immediately, apply these specific compensating controls, noting the trade-offs: (1) restrict the Nginx UI account permissions so that only fully trusted administrators can create or modify automatic backup configurations, since the vulnerability is only reachable with backup-management privileges (PR:L) - this removes the attacker population but does not fix the code path; (2) ensure the Name field of every existing automatic backup contains no path separators or '..' components and review/clean up any backup entries with unusual names before the next scheduled run, accepting that manual name hygiene is easy to regress; (3) run the Nginx UI process with least privilege (a dedicated non-root user, and, where practical, a container with a restricted/read-only root filesystem and a dedicated writable backup volume), which does not prevent the traversal but caps the impact of an out-of-directory write to the files that process can reach; (4) if encrypted configuration backups are not required, avoid configuring them, since the adjacent encryption key file is the additional artifact that can be displaced - the trade-off is losing encryption-at-rest for configuration backups; (5) monitor the Nginx UI process's backup storage location and its parent directories for unexpected archive or key files appearing outside the configured storage_path. Note that no vendor-released patch exists for versions prior to 2.4.3 other than upgrading to 2.4.3, and that the independent assessment scores confidentiality impact as None (C:N), meaning the primary risk is unauthorized file placement (integrity/availability), not direct data disclosure.

Affected VersionsENISA

nginx-ui < 2.4.3

Affected Packages

go github.com/0xjacky/nginx-ui fix: 1.9.10-0.20260715121709-f92218e01054
euvd nginx_ui fix: 2.4.3

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 front end for the Nginx web server, and CVE-2026-84320 is a classic CWE-22 path traversal arising from an untrusted-name-to-filesystem-path flow in the automatic backup subsystem. The AutoBackup model stores a user-supplied Name alongside StorageType and StoragePath; while the storage_path was validated to remain inside the intended directory, AutoBackup.GetName previously performed only a trivial transformation (strings.ReplaceAll(strings.TrimSpace(a.Name), " ", "_")), returning the user-controlled name verbatim with no rejection of path separators or '..' parent-directory components. Downstream code embedded that result into a generated archive filename (for example via fmt.Sprintf("%s_%d.zip", name, timestamp)) and then resolved it with Go's filepath.Join(storagePath, generatedFilename); because filepath.Join cleans and normalizes the joined path, a name containing separators or '..' causes the resolved output to escape the validated storage directory. The same construction applies to the key file written alongside encrypted configuration backups. The upstream fix (commit f92218e0) introduces SafeAutoBackupName, which whitelists only letters, digits, '.', '-' and '_', collapses disallowed runs into underscores, strips '..' sequences, trims leading/trailing '._-' characters, falls back to 'backup' for empty results, and prefixes an underscore for Windows reserved device names, complemented by validateAutoBackupFilename rejecting Windows-reserved characters (<>:"|?*) and reserved device names (CON, PRN, AUX, NUL, COM1-9, LPT1-9). The provided CPE cpe:2.3:a:0xjacky:nginx-ui:*:*:*:*:*:*:*:* with no version constraints reflects that all releases prior to 2.4.3 are affected.

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 6.3 MEDIUM
AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:L
vuln.today AI 5.4 MEDIUM

Network-reachable admin UI with low-privilege authenticated access (PR:L), no UI; it is a file-write primitive so I:L and A:L but C:N since no data is read.

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:L
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:L/VA:L/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
Low
Integrity
Low
Availability
Low

Lifecycle Timeline

1
Patch available
Oct 12, 2026 - 22:03 EUVD

DescriptionCVE.org

Nginx UI is a web user interface for the Nginx web server. Prior to 2.4.3, Nginx UI validates an automatic backup's storage_path, but AutoBackup.GetName returns a user-controlled name without rejecting path separators or parent-directory components, and downstream filename formatting embeds that result in the final archive filename. An authenticated user who can create or modify an automatic backup can cause filepath.Join to resolve the generated archive path outside the validated storage directory, allowing backup archives to be written with the Nginx UI process privileges. For encrypted configuration backups, the adjacent encryption key file can also be written outside the validated directory. This issue is fixed in version 2.4.3.

Threat Intelligence Overview

EPSS Score
0.2%
Top 94% exploitable
Prevalence
Low
niche self-hosted open-source nginx admin UI, limited enterprise footprint
Threat Intel
1
1 source
Data Quality
5 sources
Confidence: Medium

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 MEDIUM
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
Medium

Priority Score

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

Attack Technique

Path traversal exploits occur when applications use user-controlled input to construct file system paths without proper validation.

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-2026-42221 CRITICAL POC
9.8 May 04

Unauthenticated attackers who can reach a fresh, uninitialized Nginx UI instance before version 2.3.8 during its first-r

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-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-42223 MEDIUM POC
6.5 May 04

nginx-ui versions prior to 2.3.8 expose 40+ protected configuration fields through the GetSettings API to authenticated

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-2026-44015 CRITICAL
9.9 May 12

Server-side request forgery in Nginx UI through 2.3.4 lets any authenticated user redirect API requests to an attacker-c

CVE-2026-42222 CRITICAL
9.8 May 04

Unauthenticated bootstrap takeover in Nginx UI 2.3.5: any remote client that can reach a still-uninitialized instance du

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

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