Nginx UI: MCP `nginx_config_add` Bypasses Directive Validation — Authenticated RCE
Default status is the baseline for the product, each version can override it (e.g. patched versions marked unaffected).
| Vendor | Product | Default status | Versions | ||||||
|---|---|---|---|---|---|---|---|---|---|
| 0xJacky | nginx-ui | affected |
|
No data.
No data.
| Vendor | Product | Versions | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| 0xjacky | Nginx-ui |
|
| Source | ID | Title |
|---|---|---|
Github GHSA |
GHSA-9jww-cxg5-rj9m | Nginx UI: MCP `nginx_config_add` Bypasses Directive Validation — Authenticated RCE |
No CVSS v4.0
No CVSS v3.0
No CVSS v2
This CVE is not in the KEV list.
Exploit prediction score: < 1% (0.816% probability within 30 days)
| Type | Values Removed | Values Added |
|---|---|---|
| Metrics |
ssvc
|
| Type | Values Removed | Values Added |
|---|---|---|
| First Time appeared |
0xjacky
0xjacky nginx-ui |
|
| Vendors & Products |
0xjacky
0xjacky nginx-ui |
| Type | Values Removed | Values Added |
|---|---|---|
| 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. | |
| Title | Nginx UI: MCP `nginx_config_add` Bypasses Directive Validation — Authenticated RCE | |
| Weaknesses | CWE-693 | |
| References |
| |
| Metrics |
cvssV3_1
|