Skip to main content

Nginx UI CVE-2026-84318

| EUVDEUVD-2026-97908 HIGH
Protection Mechanism Failure (CWE-693)
2026-10-12 GitHub_M GHSA-9jww-cxg5-rj9m
8.8
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 as low-privilege user
  2. Delivery
    Call MCP nginx_config_add with malicious directive
  3. Exploit
    Bypass missing ValidateConfigFile check
  4. Execution
    Write config and trigger nginx reload
  5. Persist
    Load Perl/njs/Lua module code
  6. Impact
    Execute arbitrary code as nginx

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V15 - Secure Coding and Architecture Protection mechanism completeness
Exploitation Conditions

Exploitation requires (1) an authenticated Nginx-UI session at minimum a low-privilege user (CVSS PR:L), and (2) use of the MCP tool nginx_config_add rather than the REST endpoint POST /api/configs - the REST path calls config.ValidateConfigFile and correctly rejects dangerous directives, so only the MCP flow is vulnerable. The arbitrary-config-write and nginx-reload primitive works against any affected version (2.0.0-rc.6 through 2.4.0) regardless of modules. The full Remote Code Execution outcome additionally requires the target nginx to have the Perl, njs, or Lua module loaded so that injected directives such as perl, js_import, or load_module actually execute code. Limiting factors for defenders: valid authentication is mandatory (not internet-anonymous), the MCP interface must be reachable/enabled, and without a scripting module loaded the impact is config tampering rather than direct code execution.

Impact

This is a genuine priority within its (limited) deployment footprint rather than a high-CVSS paper tiger. The provided CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N) indicates a network-reachable, low-complexity flaw requiring only low privileges (PR:L = authenticated), scoring 8.8. The signals are internally consistent: the description confirms the flaw is post-authentication, matching PR:L, and the attack is a straightforward API request, matching AC:L. However, the top-end impact (full RCE, hence C:H/I:H/A:H) is CONDITIONAL - the description explicitly states RCE only materializes 'on a server with the nginx Perl, njs, or Lua module loaded.' Without such a module, the attacker still achieves an arbitrary nginx-config write (a serious integrity/availability issue and a likely stepping stone), but not immediate code execution, so the real-world worst case depends on target configuration. No EPSS score, no CISA KEV listing, and no public exploit were provided in the input; the fix commit and a security advisory exist but a weaponized PoC is not referenced. CWE-693 (Protection Mechanism Failure) accurately frames the root cause: the MCP code path omits config.ValidateConfigFile that the REST path enforces. Net assessment: elevated risk for exposed Nginx-UI instances where any attacker can obtain a low-privilege authenticated session, tempered by the authentication requirement and the module-loaded precondition for the RCE outcome. No SSVC decision data was supplied in the input.

Exploit ScenarioDerived

An attacker who has obtained any authenticated Nginx-UI session (low-privilege account) invokes the MCP tool nginx_config_add to write an nginx configuration containing a normally-blocked directive such as load_module, perl, or js_import, which the MCP path fails to validate before reloading nginx. If the server has the Perl, njs, or Lua module available, the injected directive executes attacker-controlled code with nginx's privileges, yielding post-authentication remote code execution. No public exploit is referenced in the input, so exploitation would rely on attacker-developed tooling against the documented MCP flow.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.6% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Oct 12, 2026

Configuration-validation bypass in Nginx UI (versions 2.0.0-rc.6 through 2.4.0) lets an authenticated low-privilege user write arbitrary nginx configuration directives through the MCP tool nginx_config_add, which persists the file and triggers an nginx reload without ever calling config.ValidateConfigFile - the guard the REST endpoint POST /api/configs does invoke. Because blocked directives such as perl, js_import, load_module and user root can therefore be injected, an attacker on a host with the nginx Perl, njs or Lua module loaded can escalate this into post-authentication remote code execution; on hosts without a scripting module the effect is arbitrary config tampering and reload. The issue is fixed in Nginx UI 2.4.1, and no public exploit code or confirmed active exploitation has been identified at time of analysis.

RemediationAI

Vendor-released patch: 2.4.1 - upgrade Nginx UI to v2.4.1 or later (release notes: https://github.com/0xJacky/nginx-ui/releases/tag/v2.4.1), which restores config.ValidateConfigFile enforcement on the MCP nginx_config_add path per commit 23d1934099b05b2a01589b48129dc3d3159d91c2 and adds regression coverage; see also advisory GHSA-9jww-cxg5-rj9m. Where immediate upgrade is not possible, the highest-value compensating control is to disable or network-restrict the MCP interface entirely (bind it to localhost or a trusted management VLAN via firewall/reverse-proxy ACLs and disable the MCP endpoint if unused) - this removes the vulnerable write path, at the cost of losing MCP-based automation. Additionally, remove or unload the nginx Perl, njs, and Lua modules from managed servers (load_module directives for ngx_http_perl_module, ngx_http_js_module, ngx_http_lua_module) so that injected directives cannot execute code, degrading the impact from RCE to config tampering - though this breaks legitimate Perl/njs/Lua deployments. Finally, enforce least privilege on Nginx UI accounts, require secure sessions/2FA for mutating operations, audit nginx-ui users, and review nginx configuration files plus reload history for unexpected perl, js_import, js_content, load_module, or user directives as an indicator of attempted exploitation. Note that the REST path (POST /api/configs) is not affected and validation cannot be bypassed there.

Affected VersionsENISA

nginx-ui 2.0.0-rc.6, < 2.4.1

Affected Packages

go github.com/0xjacky/nginx-ui fix: 1.9.10-0.20260703131214-23d1934099b0
euvd nginx_ui_2_0_0_rc_6 fix: 2.4.1

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-based web control plane for the nginx web server, exposing both a REST API and an MCP (Model Context Protocol) tool interface for programmatic configuration management. The root cause is CWE-693 (Protection Mechanism Failure): the two write paths diverge in their security checks. The REST handler for POST /api/configs calls config.ValidateConfigFile, which rejects dangerous nginx directives (perl, js_import, js_content, load_module, user root, and similar), whereas the MCP tool nginx_config_add performs a direct file write followed by an nginx reload with no equivalent validation. Validation here is the platform's entire defense against configuration-driven code execution, so its absence in one code path nullifies the control. Exploitation is a two-stage primitive: the validation gap yields arbitrary config write and reload against any affected version, while the RCE outcome depends on an environment precondition - nginx must have the Perl, njs, or Lua module loaded so that injected directives resolve to executable code, as reflected in the affected CPE cpe:2.3:a:0xjacky:nginx-ui:*:*:*:*:*:*:*:* and CVSS vector CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H (PR:L, authenticated). The upstream fix is commit 23d1934099b05b2a01589b48129dc3d3159d91c2, accompanied by security_test.go regression tests, and is released as v2.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

Vendor (GitHub_M) PRIMARY 8.8 HIGH
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
vuln.today AI 8.8 HIGH

Network-reachable MCP call, low complexity, needs a low-privilege authenticated session (PR:L); arbitrary config write plus module-based RCE justifies high C/I/A, scope unchanged.

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

Lifecycle Timeline

2
Patch available
Oct 12, 2026 - 22:03 EUVD
CVE Published
Oct 12, 2026 - 20:20 cve.org
HIGH 8.8

DescriptionCVE.org

Nginx UI is a web user interface for the Nginx web server. From 2.0.0-rc.6 until 2.4.1, the MCP tool nginx_config_add writes nginx configuration files to disk and triggers an nginx reload without calling config.ValidateConfigFile. The identical flow in the REST API (POST /api/configs) does call that function and correctly rejects dangerous directives. An authenticated attacker can exploit this gap to write config files containing any blocked directive (perl, js_import, load_module, user root, etc.), bypassing nginx-ui's entire security layer. On a server with the nginx Perl, njs, or Lua module loaded, this is post-authentication Remote Code Execution. This issue is fixed in version 2.4.1.

Executive ViewAI

Why It Matters

A configuration-validation bypass in Nginx UI (versions 2.0.0-rc.6 through 2.4.0) allows a user with access to the management interface to inject nginx directives that the product's own REST endpoint would normally reject, silently rewriting the web server's configuration and forcing a reload. On any host where the nginx Perl, njs or Lua module is loaded, this can be escalated to remote code execution as the nginx service account; elsewhere it still yields unauthorized configuration tampering. Because Nginx UI is a central control plane for the web tier, compromise of a single instance can affect every site and service that server fronts, making this a priority for teams running the affected versions.

Business Impact: High
Compensating Controls

Apply vendor patch (Nginx UI 2.4.1). Where upgrading is not immediately possible, restrict management and MCP tool access to trusted networks, disable the nginx_config_add MCP tool, remove unnecessary nginx Perl/njs/Lua modules to break the code-execution path, and monitor nginx configuration writes and reloads for unauthorized directives.

Threat Intelligence Overview

EPSS Score
0.6%
Top 52% exploitable
Prevalence
Medium
popular open-source self-hosted nginx management UI, not enterprise-ubiquitous
Threat Intel
1
1 source
Data Quality
5 sources
Confidence: Medium
EUVD NVD CVE.org EPSS Vulnrichment GHSA GitHub

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 HIGH
CISA KEV No
Public POC No
EPSS 0.6%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.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
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

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

Attack Technique

Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.

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-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-2026-42221 HIGH POC
8.1 May 04

Unauthenticated attackers can hijack the administrator account during nginx-ui's first-run installation window by claimi

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-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-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-84313 HIGH
8.8 Oct 12

Nginx UI installations before 2.4.1 expose two account-security endpoints, POST /api/otp_enroll and POST /api/finish_pas

CVE-2026-84316 HIGH
8.8 Oct 12

Configuration validation bypass in Nginx UI (nginx-ui) prior to 2.4.1 lets an authenticated user with configuration-writ

CVE-2026-107811 HIGH
8.8 Oct 09

Ordinary authenticated users of clustered Nginx UI deployments can read the cluster node token from the JSON responses o

CVE-2026-107813 HIGH
8.8 Oct 09

Missing second-factor step-up enforcement in the Nginx UI cluster API (versions 2.0.0 through 2.4.x) allows anyone holdi

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