Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain authenticated admin session
-
DeliveryPOST crafted backup+key to /api/restore
-
ExploitDecrypts and overwrites app.ini (TestConfigCmd)
-
ExecutionPOST /api/nginx/test triggers command
-
ImpactArbitrary command execution in Nginx UI context
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Code injection prevention, sandbox exec
MITRE ATT&CK
2 techniques across 2 tactics: Execution, Initial Access The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires an authenticated Nginx UI administrator with an active secure session (PR:H) - this is not remotely reachable by anonymous users. The specific prerequisite is access to the backup restore feature: the attacker submits attacker-controlled portable backup key material plus a matching manifest to POST /api/restore, which trusts the supplied key and overwrites the live app.ini (notably the protected TestConfigCmd setting). Execution is then triggered via POST /api/nginx/test. Limiting factors: the admin privilege requirement is the primary constraint; affected only on versions 2.3.8 through 2.4.x (fixed in 2.5.0); no end-user interaction is required beyond the attacker's own authenticated requests (UI:N). Instances not exposing an admin account to untrusted parties, or already upgraded to 2.5.0, are not exploitable. |
| Impact | This is a post-authentication code injection (CWE-94) leading to RCE in Nginx UI. The CVSS 4.0 score of 9.4 is Critical, but the vector itself is the key moderating signal: AV:N/AC:L/AT:N but PR:H means the attacker must already hold an authenticated administrator session before any exploitation is possible. This is confirmed by the description ('an authenticated administrator with an active secure session'). The high VC/VI/VA plus subsequent-system SC/SI/SA:H reflect that successful exploitation yields full command execution in the Nginx UI runtime context. No EPSS score, no CISA KEV listing, and no public POC were provided in the input - only the vendor patch commit and advisory. There is therefore no public exploit identified at time of analysis, and no evidence of active exploitation. Net assessment: the raw 9.4 overstates real-world urgency because exploitation requires pre-existing admin privileges; the realistic threat is privilege-consolidation / defense-in-depth (a malicious or compromised admin account, or a hijacked admin session, escalating from app-admin to OS-level command execution). Prioritize patching for internet-exposed instances, but this is not a mass-exploitable unauthenticated flaw. Note the PR:H dependency is confirmed by the CVSS vector and the description - these signals agree, so authentication requirement is not in doubt. |
| Exploit ScenarioDerived | An attacker who has obtained an authenticated Nginx UI administrator session (via credential theft, session hijacking, or insider access) submits a crafted portable backup - supplying their own key material and a matching manifest - to POST /api/restore. The restore flow trusts the attacker-supplied key, decrypts the attacker-controlled payload, and overwrites app.ini including the protected TestConfigCmd setting; the attacker then calls POST /api/nginx/test, causing their injected command to execute in the Nginx UI runtime context. No public POC was provided, but the fixing commit (a467ed6) is published and reveals the trust-level mechanics. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 09, 2026
Authenticated administrators of Nginx UI releases 2.3.8 through 2.4.x can achieve remote code execution on the host by abusing the backup restore endpoint to overwrite live configuration with attacker-controlled nginx command settings. The attacker submits attacker-controlled portable backup key material along with a matching manifest to POST /api/restore; because the restore flow trusts the supplied key and treats the backup as 'portable', it decrypts the attacker's payload and replaces the live app.ini, including the protected TestConfigCmd value, after which a call to POST /api/nginx/test executes the restored command inside the Nginx UI runtime. The issue is rated CVSS 9.4 (CVSS 4.0) and CVSS 3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:H, is fixed in version 2.5.0, and at time of analysis there is no public exploit identified and no confirmed active exploitation (not listed in CISA KEV); the practical barrier is the high-privilege authenticated session required, so exposure is limited to instances where an admin account or session can be obtained by an untrusted party.
RemediationAI
Upgrade to Nginx UI 2.5.0 or later (vendor-released patch: 2.5.0), available from https://github.com/0xJacky/nginx-ui/releases/tag/v2.5.0 and detailed in advisory https://github.com/0xJacky/nginx-ui/security/advisories/GHSA-p393-cf76-4jmr, with the fix diff at commit a467ed652591fc0cd1b466a1ec751b493faef9f7; this is the only complete remedy because the flaw is in the restore logic itself. If immediate upgrade is not possible, the highest-value compensating control is to remove the prerequisite rather than the code path: ensure no untrusted party can obtain or use an Nginx UI administrator session (enforce strong unique credentials, MFA or an upstream SSO/identity-aware proxy, short session lifetimes, and immediate session invalidation on any suspicion), since exploitation requires an authenticated high-privilege session. Additionally, restrict access to the administrative API at the reverse proxy so that POST /api/restore and POST /api/nginx/test are reachable only from trusted management networks or IP allowlists - the trade-off is that legitimate backup restores and config tests must then originate from those networks. Treat app.ini and the backup/restore directories as sensitive and monitor or alert on writes to app.ini (especially changes to TestConfigCmd) and on restore requests referencing externally supplied keys or manifests, accepting that detection is a backstop and not a substitute for patching. Restricting the Nginx UI service account to the minimum OS privileges needed to manage Nginx reduces the blast radius of a successful injected command, though it will not prevent the injection itself; avoid untrusted or third-party backup archives entirely until the upgrade is applied.
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 front end for managing the Nginx web server, and its backup/restore subsystem handles archives containing a manifest, encrypted database contents, and configuration files such as app.ini. The root cause is CWE-94 (improper control of generation of code - code injection): the restore path accepted attacker-supplied 'portable' backup key material and a manifest whose trust provenance was not enforced, so the server decrypted arbitrary contents and applied them to live configuration, including settings explicitly classified as protected (notably TestConfigCmd, the command Nginx UI runs when testing an Nginx configuration). Code execution follows indirectly: the injected command string is invoked in the Nginx UI process context when the configuration test endpoint is triggered, giving the attacker the privileges of that service. The upstream fix (commit a467ed652591fc0cd1b466a1ec751b493faef9f7, released in v2.5.0) introduces explicit manifest trust levels - restoring a portable backup now yields ManifestTrustPortable and the restore result reports SkippedSettings, so protected settings are no longer overwritten; legacy manifests are handled as ManifestTrustCurrentServer. The same commit adds a new internal/backup/extract.go that hardens archive extraction with an extraction policy, deferred symlink creation so no later entry can be redirected through a link, absolute-symlink rewriting rooted at the Nginx config directory, and file operations constrained through a directory root handle - collateral hardening that closes symlink/zip-slip style paths into the same restore feature. CPE data (cpe:2.3:a:0xjacky:nginx-ui) confirms the affected package is the upstream 0xJacky/nginx-ui project rather than a third-party fork.
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
CVSS:4.0/AV:N/AC:L/AT:N/PR:H/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H
Remotely reachable API but requires an authenticated admin session (PR:H); low complexity; S:C because execution escapes the app into the OS/nginx command context with full C/I/A impact.
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.3.8 until 2.5.0, an authenticated administrator with an active secure session can submit attacker-controlled portable backup key material and a matching manifest to POST /api/restore. The restore flow trusts the supplied key, decrypts attacker-controlled contents, and replaces the live app.ini, including protected nginx command settings such as TestConfigCmd. Triggering POST /api/nginx/test then executes the restored command in the Nginx UI runtime context, affecting confidentiality, integrity, and availability. This issue is fixed in version 2.5.0.
Articles & Coverage 2
Technical POC Analysis
CWE-94, code injection via externally influenced configuration.
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.3.8 through 2.4.x contain a critical vulnerability that allows authenticated administrators to achieve remote code execution on the host, potentially compromising sensitive data and disrupting services. Although no public exploit has been identified, the flaw is rated CVSS 9.4 and requires immediate remediation via the vendor-released patch version 2.5.0 to prevent insider threats or compromised admin accounts from causing significant harm.
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
Code injection occurs when an application accepts user input and passes it directly into a language interpreter or evaluator without proper sanitization.
Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.
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
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
Missing second-factor step-up enforcement in the Nginx UI cluster API (versions 2.0.0 through 2.4.x) allows anyone holdi
EUVD-2026-95822
GHSA-p393-cf76-4jmr
NVD
CVE.org
EPSS
Exploit-DB