Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate to Nginx UI with config-write role
-
DeliveryCraft multi-directive line hiding restricted directive after semicolon
-
ExploitSubmit via REST/site/stream write path bypassing validation
-
ExecutionLoad executable module into Nginx worker
-
ImpactExecute arbitrary code in worker context
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V2 - Validation and Business Logic Input validation, allowlisting
|
| Exploitation Conditions | Requires an authenticated Nginx UI session with permission to write configuration through the REST, nginx_config_modify, site, or stream write paths on a version prior to 2.4.1. The attacker crafts a single configuration line containing a benign directive followed by a semicolon-separated restricted directive (load_module, js_import, perl, or user root) - or an unrestricted include that pulls in restricted content - exploiting that ValidateConfigDirectives only checks the first token per newline-split line. The strongest outcome, arbitrary code execution in the Nginx worker, is LIMITED by the requirement that an executable/loadable Nginx module (.so) already be present on the host for the injected load_module directive to run. Limiting factors for defenders: valid authenticated credentials with config-write privilege are mandatory (not exploitable pre-auth), and the instance must be running a version before 2.4.1. |
| Impact | This is a genuine high-priority issue for anyone exposing Nginx UI, but the risk is gated by authentication. The CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H, 8.8) indicates a network-reachable, low-complexity flaw requiring only low privileges (PR:L) - i.e. any authenticated caller with config-write access, not an anonymous attacker. The impact triad is uniformly High because a successful bypass leads to code execution in the Nginx worker context, effectively full compromise of the host's web-serving process. No EPSS score, CISA KEV listing, or public POC was provided in the input, so there is no public exploit identified at time of analysis; the exploitation-probability and active-exploitation signals are simply ABSENT, not low - do not read their absence as safety. The practical risk is tempered by two factors the raw score does not capture: (1) an attacker must first hold valid authenticated credentials with config-write permission, and (2) the strongest outcome - arbitrary code execution via load_module - additionally requires an executable Nginx module (.so) to already be present on the system. The CVSS vector and the description are consistent (both point to an authenticated remote actor), so there is no AV/PR conflict to flag. Net: a real, patch-now vulnerability for exposed instances, but it is an authenticated post-access escalation rather than a wormable unauthenticated RCE. |
| Exploit ScenarioDerived | An authenticated Nginx UI user with config-write access submits a configuration through a REST, nginx_config_modify, site, or stream write path, placing a harmless directive first on a line followed by a semicolon and a restricted directive such as load_module, perl, js_import, or user root - the validator only inspects the first token, so the restricted directive slips through. When a loadable Nginx module is available, the injected load_module directive causes code execution in the Nginx worker process; alternatively an unrestricted include directive pulls in attacker-controlled restricted content. No public exploit was identified at time of analysis, though the mechanism is fully documented in the vendor advisory and fix commit. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 12, 2026
Configuration validation bypass in Nginx UI (nginx-ui) prior to 2.4.1 lets an authenticated user with configuration-write privileges inject restricted Nginx directives by placing a benign directive first on a single line and appending a semicolon-separated restricted directive such as load_module, js_import, perl, or user root, because ValidateConfigDirectives only inspects the first token of each newline-split line. The flaw affects the REST, nginx_config_modify, site, and stream write paths and can escalate to arbitrary code execution in the Nginx worker context when a loadable Nginx module is already present on the host, a precondition that limits practical impact. No public exploit code was identified at the time of analysis, and the vendor released patch version 2.4.1.
RemediationAI
Upgrade to Nginx UI 2.4.1 or later, the vendor-released patch version, using the release at https://github.com/0xJacky/nginx-ui/releases/tag/v2.4.1 or by applying the change in commit https://github.com/0xJacky/nginx-ui/commit/23d1934099b05b2a01589b48129dc3d3159d91c2; the advisory at https://github.com/0xJacky/nginx-ui/security/advisories/GHSA-cf23-7qxj-xmhr is the authoritative reference. Until the update is deployed, the primary compensating control is to restrict configuration-write privileges on Nginx UI to fully trusted administrators and to audit or revert any configuration changes that introduce load_module, js_import, perl, user root, or unexpected include directives, though this manual review is error-prone and does not fully block the bypass. Administrators can also limit network exposure of the Nginx UI management interface by binding it to localhost or an isolated admin VLAN, or by fronting it with a reverse proxy that enforces strong authentication, and may disable the REST, nginx_config_modify, site, and stream write endpoints if web-based configuration management is not needed, accepting the loss of that functionality as the trade-off. These mitigations reduce risk but do not eliminate the validation flaw; patching is the only complete fix.
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
The issue is a CWE-20 improper input validation defect in Nginx UI's config.ValidateConfigDirectives function, which is intended to reject dangerous Nginx configuration directives when users edit configs through the web interface. Nginx permits multiple directives on one physical line when separated by semicolons, but the validator splits input on newlines and evaluates only the first token of each line; an authenticated attacker (the CVSS vector CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H contains PR:L, confirming authentication is required) can therefore prefix a line with an allowed directive and append a restricted one such as load_module, js_import, perl, or user root, or use an unrestricted include directive to pull in restricted content. The bypass applies to the REST, nginx_config_modify, site, and stream write paths. Successful injection can reach arbitrary code execution in the Nginx worker process, but only when an executable Nginx module (.so) already exists on the host so that load_module has something runnable to load; that precondition limits the strongest outcome in practice. The referenced fix commit also adds middleware.RequireSecureSession() to backup auto-backup routes, an ancillary hardening change included alongside the validator fix. No CPE strings were provided in the available intelligence, so affected product identification relies on the GitHub advisory naming Nginx UI before 2.4.1.
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
Network-reachable web API (AV:N) exploitable with low effort (AC:L) by any authenticated config-write user (PR:L, no UI); injected directives yield worker-context code execution giving full C/I/A impact within the managed component (S:U).
Primary rating from Vendor (github).
CVSS VectorVendor: github
Lifecycle Timeline
2DescriptionCVE.org
Nginx UI is a web user interface for the Nginx web server. Prior to 2.4.1, config.ValidateConfigDirectives splits configuration by newline and checks only the first directive token on each line even though Nginx permits multiple semicolon-separated directives on one line. An authenticated caller can place a benign directive first and a restricted load_module, js_import, perl, or user root directive later on the same line, or can use an unrestricted include directive to load restricted content. These mechanisms bypass validation on REST, nginx_config_modify, site, and stream write paths; when an executable module is available, the injected configuration can execute code in the Nginx worker context. This issue is fixed in version 2.4.1.
Articles & Coverage 2
Executive ViewAI
Nginx UI (nginx-ui) deployments running versions earlier than 2.4.1 are exposed to a configuration-validation bypass that lets accounts holding configuration-write privileges insert restricted Nginx directives into the web server's running configuration through the REST, nginx_config_modify, site, and stream write paths. Because that escalation can reach arbitrary code execution in the Nginx worker context when a loadable Nginx module is already present on the host, a management-plane privilege could translate into execution on production web infrastructure, so leadership should care wherever Nginx UI configuration rights are delegated to multiple operators, contractors, or automation accounts. The need for an already-privileged account and a pre-installed loadable module keeps the realistic exposure narrower than the 8.8 base score alone suggests.
Apply vendor patch: Nginx UI 2.4.1 or later. Until every instance is upgraded, restrict network access to the nginx-ui management interface, reduce configuration-write privileges to the minimum set of operators, remove unused loadable Nginx modules from managed hosts to break the code-execution precondition, and alert on restricted directives (load_module, js_import, perl, user root) appearing in configuration writes.
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
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-97906
GHSA-cf23-7qxj-xmhr
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB