Skip to main content

Nginx UI EUVDEUVD-2026-95897

| CVE-2026-107812 HIGH
Download of Code Without Integrity Check (CWE-494)
2026-10-09 GitHub_M GHSA-662p-52hx-cmh2
7.5
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Gain mirror control or MITM position
  2. Delivery
    Operator triggers self-upgrade
  3. Exploit
    Serve malicious binary with matching digest
  4. Execution
    Digest-only check passes
  5. Impact
    Install and run attacker code as Nginx UI process

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A08:2025 - Software or Data Integrity Failures
ASVS 5.0
V15 - Secure Coding and Architecture Code integrity verification
Exploitation Conditions

Exploitation requires two concurrent conditions: (1) the attacker must control the Nginx UI upgrade mirror or hold a man-in-the-middle network position capable of altering BOTH the downloaded binary and its digest response (the same-origin digest provides no independent trust anchor); and (2) an operator must manually trigger the self-upgrade feature - the code is installed and run only on that next upgrade. Limiting factors: only the self-upgrade workflow is affected (default install without an operator-initiated upgrade is not exploitable), and the high network/mirror-position requirement plus required operator action substantially narrow realistic exploitation. Only versions 2.0.0 through 2.4.x are affected; 2.5.0 adds minisign signature verification.

Impact

This is a code-integrity flaw (CWE-494) in the Nginx UI self-upgrade mechanism, where a downloaded binary is validated only against a same-origin digest from the same mirror, so an attacker who controls that mirror or the network path can swap in both a malicious binary and a matching digest. The provided CVSS 3.1 vector (AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:H, base 7.5) accurately captures the shape: network-reachable and unauthenticated, but gated by high attack complexity (the attacker must already hold a privileged network/mirror position and tamper with two responses) and by required operator interaction (the upgrade must be manually triggered). No EPSS score, KEV listing, or POC is present in the input, so there is no public exploit identified at time of analysis and no evidence of active exploitation; the two preconditions (MITM-or-mirror-compromise plus an operator-initiated upgrade) make opportunistic mass exploitation unlikely and point toward targeted abuse if exploited at all. This is therefore a genuine full-compromise risk once the preconditions are met (attacker code runs in the Nginx UI process context, yielding C/I/A High), but the AC:H and UI:R gates place it below internet-facing drive-by criticals in real-world priority. Note the C:H rating: the flaw is tagged 'Information Disclosure' in the input, but the actual primary impact is arbitrary code execution / supply-chain integrity loss, so the tag understates and mischaracterizes the risk.

Exploit ScenarioDerived

An attacker who has compromised the Nginx UI upgrade mirror, or who occupies a man-in-the-middle position on the network path (e.g. a hostile network or TLS-stripping proxy), waits for or induces an operator to click 'upgrade' in the Nginx UI (versions 2.0.0 to pre-2.5.0). The attacker returns a malicious executable together with a matching same-origin digest, which passes validation, and the application installs and executes the attacker's code in the Nginx UI process context on the next upgrade. No public exploit code was identified at time of analysis, and high attack complexity means the attacker must already hold the mirror/network position.

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

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

Alert me

AnalysisAIv1 – Oct 09, 2026

Attackers who control the Nginx UI upgrade mirror - or hold a man-in-the-middle position on the path to it - can get arbitrary code installed and executed by Nginx UI 2.0.0 through 2.4.x, because the self-upgrade routine verifies the downloaded binary only against a same-origin digest fetched from that same mirror, leaving no independent trust anchor. Exploitation requires two simultaneous conditions: the attacker's mirror/network position must let them alter BOTH the binary and its digest response, and an operator must manually trigger the self-upgrade, at which point the swapped payload is installed and runs in the Nginx UI process context. The issue is rated CVSS 7.5 (AV:N/AC:H/PR:N/UI:R) and is fixed in 2.5.0, which introduces minisign signature verification; no public exploit code and no confirmed active exploitation were identified at time of analysis, and the high network-position prerequisite plus the required operator action substantially narrow realistic exploitation.

RemediationAI

Vendor-released patch: 2.5.0 - upgrade Nginx UI to v2.5.0 (https://github.com/0xJacky/nginx-ui/releases/tag/v2.5.0), which adds Minisign signature verification of release archives so the integrity check no longer depends on a digest served by the same mirror; the change is implemented in commit 580585516dd87a8b176bcdac258db70c3b64b7ec and documented in GHSA-662p-52hx-cmh2. Because installing the fix through the vulnerable self-upgrade path would repeat the same trust problem, obtain and verify the 2.5.0 artifact out-of-band (container image, package manager, or a manually downloaded archive checked against its .minisig file and the project's trusted public keys) before replacing the binary. If immediate upgrade is not possible, disable or refrain from using the in-application self-upgrade feature and perform upgrades manually from a trusted source; that workaround costs operators automatic update convenience and requires a repeatable manual release-verification process. Additionally, restrict which hosts the Nginx UI host can reach for update traffic (allow-list only the legitimate release endpoint, block or monitor other mirror URLs), and terminate outbound updates through a controlled egress proxy or pinned TLS, accepting the operational overhead of maintaining that allow-list. Hosts that already ran a self-upgrade from an untrusted or unverified mirror between versions 2.0.0 and 2.4.x should be treated as potentially compromised and rebuilt from a known-good image rather than patched in place.

Affected VersionsENISA

nginx-ui 2.0.0, < 2.5.0

Affected Packages

go github.com/0xjacky/nginx-ui fix: 1.9.10-0.20260728114330-580585516dd8
euvd nginx_ui_2_0_0 fix: 2.5.0

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

This is a software supply-chain / code-integrity defect (CWE-494, Download of Code Without Integrity Check) in the Go-based Nginx UI application (CPE cpe:2.3:a:0xjacky:nginx-ui). Nginx UI ships a self-upgrade feature that downloads a release archive from a configured upgrade mirror and validates it using a digest served from the same origin as the artifact. Since the digest and the artifact share a trust domain, an adversary who compromises the mirror (or terminates the TLS/HTTP path) can satisfy the integrity check with a digest computed over a malicious binary, defeating the check entirely. The fix, delivered in v2.5.0 via commit 580585516dd87a8b176bcdac258db70c3b64b7ec, moves verification to an out-of-band trust anchor: the release build workflow now gains a Go 1.26.x setup and a 'Sign publish archive' step that runs ./cmd/sign-release using a Minisign private key from CI secrets, producing .minisig sidecar files (app-dist.tar.gz.minisig and per-OS archives) that are published alongside the artifacts, including uploads to the R2-backed nginx-ui-dev-build bucket. The new cmd/sign-release/main.go loads the Minisign private key (supporting encrypted keys via MINISIGN_PASSWORD), enforces requireTrustedSigner() against releasesign.TrustedPublicKeys(), and signs each archive; the client-side upgrade path can therefore validate a signature against baked-in trusted public keys rather than trusting anything the mirror returns. The vulnerable window is the self-upgrade mechanism only - a default installation that is never upgraded by an operator does not reach the affected code path.

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 7.5 HIGH
AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:H
vuln.today AI 7.5 HIGH

AC:H because the attacker must hold a mirror/MITM position and alter two responses; UI:R because an operator must trigger the upgrade; PR:N as no auth is needed; C/I/A:H from code execution in the process context.

3.1 AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:H
4.0 AV:N/AC:L/AT:P/PR:N/UI:A/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
High
Privileges Required
None
User Interaction
Required
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

2
Patch available
Oct 09, 2026 - 17:02 EUVD
CVE Published
Oct 09, 2026 - 15:41 cve.org
HIGH 7.5

DescriptionCVE.org

Nginx UI is a web user interface for the Nginx web server. From 2.0.0 until 2.5.0, the self-upgrade mechanism validates a downloaded binary only with a same-origin digest obtained from the same upgrade mirror. A compromised mirror or network attacker able to alter both responses can supply a malicious executable and matching digest. An operator-triggered upgrade is required, and the application installs and runs the attacker-controlled code in the Nginx UI process context on the next upgrade. This issue is fixed in version 2.5.0.

Technical POC Analysis

CWE-494 (Download of Code Without Integrity Check).

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

A flaw in Nginx UI, the web-based control panel used to manage Nginx web servers, could allow an attacker who already controls or intercepts the software's update channel to install malicious code on that host when an operator performs a routine self-upgrade. Because Nginx UI typically sits on the management path for production web infrastructure, a successful compromise could give an adversary the same level of control over the servers it manages, extending the blast radius well beyond a single system. Exploitation is not trivial - it requires a privileged network position plus a deliberate human action - and no public exploit or active exploitation has been identified, so this is a manageable but time-sensitive patching priority rather than an emergency.

Threat Intelligence Overview

EPSS Score
0.2%
Top 94% exploitable
Prevalence
Low
niche self-hosted nginx admin web UI, limited production footprint
Threat Intel
1
1 source
Data Quality
6 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GHSA GitHub VulDB

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.2%
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· derived
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Total

Priority Score

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

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

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

Configuration-validation bypass in Nginx UI (versions 2.0.0-rc.6 through 2.4.0) lets an authenticated low-privilege user

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

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