CVE-2026-84317
Received Received - Intake

Stored Code Injection in Nginx UI via MCP Tool

Vulnerability report for CVE-2026-84317, including description, CVSS score, EPSS score, affected products, exploitability, helpful resources, and attack-flow context.

Publication date: 2026-10-12

Last updated on: 2026-10-12

Assigner: GitHub, Inc.

Description

Nginx UI is a web user interface for the Nginx web server. Prior to 2.4.1, internal/config/validation.go (ValidateConfigFile) is a security control that blocks dangerous nginx directives β€” js_*, perl_*, load_module of the njs/perl modules, and user root. It is enforced on three of the four config-write paths: api/config/add.go, api/config/modify.go, and mcp/config/config_modify.go. The fourth path β€” the MCP tool nginx_config_add (mcp/config/config_add.go) β€” does NOT call it: it writes the caller-supplied content straight to disk and reloads nginx. An authenticated MCP caller (or an MCP agent induced via prompt injection) can therefore inject exactly the directives the control is meant to block, leading to nginx code execution on deployments where the njs/perl module is available (e.g. the official Docker image). This issue is fixed in version 2.4.1.

CVSS Scores

EPSS Scores

Probability:
Percentile:

Meta Information

Published
2026-10-12
Last Modified
2026-10-12
Generated
2026-10-13
AI Q&A
2026-10-13
EPSS Evaluated
N/A
NVD

Affected Vendors & Products

Showing 1 associated CPE
Vendor Product Version / Range
0xJacky nginx-ui < 2.4.1

Helpful Resources

Exploitability

CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-20 The product receives input or data, but it does not validate or incorrectly validates that the input has the properties that are required to process the data safely and correctly.
CWE-693 The product does not use or incorrectly uses a protection mechanism that provides sufficient defense against directed attacks against the product.

Attack-Flow Graph

AI Quick Actions

Instant insights powered by AI
Executive Summary

This vulnerability in Nginx UI before version 2.4.1 allows authenticated users or malicious agents to bypass security controls that block dangerous nginx directives like js_*, perl_*, load_module, and user root. The issue occurs because one config-write path (MCP tool nginx_config_add) does not enforce these controls, letting attackers inject restricted directives that can lead to nginx code execution if the njs/perl module is available.

Detection Guidance

Check if your Nginx UI version is below 2.4.1. Inspect the MCP tool nginx_config_add file (mcp/config/config_add.go) for missing validation calls. Review nginx configuration files for unexpected directives like js_*, perl_*, load_module, or user root.

Impact Analysis

If you use Nginx UI prior to 2.4.1, an attacker with access could inject malicious nginx directives, potentially gaining code execution on your server. This is especially risky if you use the official Docker image with the njs/perl module enabled, as it expands the attack surface for remote code execution.

Compliance Impact

This vulnerability could lead to unauthorized code execution, potentially violating compliance requirements for data protection (GDPR) and healthcare data security (HIPAA) by enabling attackers to access or manipulate sensitive data. Unpatched systems may fail audits due to inadequate security controls.

Mitigation Strategies

Upgrade Nginx UI to version 2.4.1 or later. Disable the MCP tool nginx_config_add if not required. Audit nginx configuration files for unauthorized directives. Restrict access to authenticated MCP callers and MCP agents.

Chat Assistant

Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-84317. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70

EPSS Chart