CVE-2026-84318 Nginx UI: MCP `nginx_config_add` Bypasses Directive Validation — Authenticated RCE
An authenticated attacker can bypass directive validation in the MCP tool to write malicious Nginx configs, leading to remote code execution.
- Exploited in the wild
- Not known
- Login needed
- Any signed-in user
- Attackable
- Over the internet
- Victim action needed
- Not needed
- Fix
- Available
What is CVE-2026-84318?
CVE-2026-84318 is a high-severity missing authorization vulnerability in 0xJacky nginx-ui, published on 12 Oct 2026. Any signed-in user can exploit it over the network, with no action from the victim.
Official description
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.
Weakness: CWE-693
Which versions are affected by CVE-2026-84318?
3 open source packages ship an affected version, including github.com/0xJacky/Nginx-UI.
| Package | Affected | Fixed in |
|---|---|---|
github.com/0xJacky/Nginx-UI Go | From 1.9.10-0.20250506154222-1330888280a2 | 1.9.10-0.20260703131214-23d1934099b0 |
github.com/0xJacky/Nginx-UI Go | From 1.9.10-0.20250506154222-1330888280a2 | 1.9.10-0.20260703131214-23d1934099b0 |
github.com/0xJacky/Nginx-UI Go | From 1.9.10-0.20250506154222-1330888280a2 | 1.9.10-0.20260703131214-23d1934099b0 |
How do I fix CVE-2026-84318?
Upgrade github.com/0xJacky/Nginx-UI to 1.9.10-0.20260703131214-23d1934099b0 or later.
Upgrade, and check permissions on every request on the server, not only in the interface. More about Missing authorization.
Is CVE-2026-84318 being exploited?
It is not confirmed as exploited in the wild, but public exploit code for CVE-2026-84318 exists.
Sources
Also known as GHSA-9jww-cxg5-rj9m, GO-2026-6781.