Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate to LuCI with high privileges
-
DeliveryInject JavaScript payload via resolver_url configuration field
-
ExploitPayload persisted in device configuration
-
ExecutionAdministrator navigates to DNS Proxy status page
-
PersistMalicious script executes in admin browser origin
-
ImpactExfiltrate session credentials or perform unauthorized admin actions
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Execution The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | The luci-app-https-dns-proxy optional package must be installed on the OpenWrt device - it is not present in default OpenWrt builds. The attacker must hold a high-privilege authenticated LuCI session (PR:H) with permission to write the HTTPS DNS Proxy configuration. The stored payload only executes when an administrator actively navigates to the HTTPS DNS Proxy status page. LuCI is bound to the device's local or adjacent network interface (AV:A), so exploitation is limited to attackers already on the same network segment, management VLAN, or with local device access. Exploitation is further constrained by OpenWrt's typical single-admin model - in most home deployments there is only one admin user, meaning an attacker who can inject must already be that admin, reducing the privilege-escalation impact; the risk is higher in shared-access or multi-user LuCI deployments. |
| Impact | The CVSS 4.0 score of 6.8 reflects a moderate real-world threat profile. AV:A (adjacent network) is the dominant risk limiter - LuCI is bound to the device's local/management interface in standard OpenWrt deployments, preventing internet-facing exploitation. PR:H confirms that the attacker must already hold a high-privilege authenticated session to inject the payload, which substantially narrows the threat actor population. The VC:H impact rating is warranted because successful execution in the admin browser context can exfiltrate session tokens, enabling full device takeover. No EPSS data was provided, no CISA KEV listing exists, and no POC code is confirmed - these signals collectively suggest no active widespread exploitation. The stored persistence mechanism elevates this above a typical reflected-XSS finding: once injected, the payload fires on every admin page visit without further attacker involvement. Real-world priority is moderate - primarily relevant in multi-user LuCI deployments or scenarios where device access credentials may be shared or compromised. |
| Exploit ScenarioDerived | An attacker with high-privilege access to LuCI - for example, a shared-credentials scenario or a compromised admin account - navigates to the HTTPS DNS Proxy configuration page and submits a resolver_url value containing an embedded JavaScript payload such as a script that beacons session cookies to an external host. The payload is persisted in the device configuration. Subsequently, any other administrator who loads the HTTPS DNS Proxy status page has the script silently execute in their browser origin, allowing session token exfiltration and enabling the attacker to assume full administrative control of the OpenWrt device. No public POC was confirmed at time of analysis. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 01, 2026
Stored cross-site scripting in luci-app-https-dns-proxy allows a highly privileged but potentially lower-trust authenticated LuCI user to persist a malicious JavaScript payload via the resolver_url parameter, which then silently executes in any administrator's browser when the HTTPS DNS Proxy status page is loaded. All currently tracked LuCI versions appear affected per EUVD listing (luci 0 <*). No public exploit code or CISA KEV listing is confirmed at time of analysis, though the stored nature of this XSS makes it more dangerous than a reflected variant because no additional attacker interaction is needed after initial injection.
RemediationAI
Apply the fix referenced in GitHub Security Advisory GHSA-c6vf-395q-4jv6 at https://github.com/openwrt/luci/security/advisories/GHSA-c6vf-395q-4jv6; an exact patched release version was not confirmed in the provided data so administrators should monitor the advisory for a specific version number. As an immediate compensating control, restrict LuCI administrative access to a dedicated management VLAN or trusted interface, preventing untrusted or shared-credential users from reaching the DNS proxy configuration page - this directly limits the pool of attackers who can inject the payload. Additionally, audit existing resolver_url values in the device configuration for unexpected JavaScript or HTML content. Avoid granting LuCI access to users who do not require full administrative trust, as PR:H access is the prerequisite for exploitation.
Affected VersionsENISA
Affects your stack
Find out whether the stacks and servers you run are on an affected version.
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
luci-app-https-dns-proxy is an optional add-on package for the LuCI web interface framework on OpenWrt, providing a graphical configuration front-end for DNS-over-HTTPS proxy daemons. The vulnerability maps to CWE-79 (Improper Neutralization of Input During Web Page Generation), meaning the resolver_url value submitted via the configuration form is stored without sanitization and later interpolated directly as raw HTML into the status page template. CPE cpe:2.3:a:openwrt:luci:*:*:*:*:*:*:*:* identifies the entire OpenWrt LuCI package family as the affected software base. When the admin's browser parses the status page, the injected payload executes within the LuCI application's origin, granting it access to cookies, local storage, and the ability to issue authenticated LuCI API calls on the admin's behalf.
Know when Luci 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
CVSS:4.0/AV:A/AC:L/AT:N/PR:H/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N
Adjacent vector reflects LuCI's local-network binding; UI:R because an admin must load the status page; S:C and I:L for cross-origin JS execution enabling admin actions.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
luci-app-https-dns-proxy contains a stored cross-site scripting vulnerability in the resolver_url parameter that allows authenticated users to inject active HTML. When an administrator views the HTTPS DNS Proxy status page, the resolver URL is rendered as raw HTML and executes JavaScript in the administrator's browser origin.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.
Stored cross-site scripting in OpenWrt's LuCI web interface lets an adjacent-network attacker inject executable HTML/Jav
In OpenWrt LuCI through 0.10, the endpoints admin/status/realtime/bandwidth_status and admin/status/realtime/wireless_st
LuCI openwrt-22.03 branch git-22.361.69894-438c598 was discovered to contain a reflected cross-site scripting (XSS) vuln
OpenWRT LuCI version git-22.140.66206-02913be was discovered to contain a stored cross-site scripting (XSS) vulnerabilit
In OpenWrt LuCI git-20.x, remote unauthenticated attackers can retrieve the list of installed packages and services. Rat
OS command injection in OpenWrt's luci-app-dockerman grants any authenticated user holding only the read ACL full root-l
Root command injection in OpenWrt's LuCI web interface (luci-proto-openvpn through 0.11.1) lets an authenticated user wi
Authenticated delegated LuCI sessions that hold the luci-app-advanced-reboot read ACL can execute arbitrary commands as
Privilege escalation to root in OpenWrt's luci-app-samba4 (LuCI web interface) lets authenticated delegated users invoke
Unauthenticated path traversal in OpenWrt's luci-app-bmx7 package exposes arbitrary files on affected routers via the bm
Ban-list poisoning in OpenWrt's luci-app-banip (banIP) before 1.8.10 lets an unauthenticated remote attacker steer the a
Stored cross-site scripting in OpenWrt's luci-app-upnp lets an unauthenticated LAN client persist a JavaScript payload t
EUVD-2026-51867
GHSA-8ggv-vmgf-36wq
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB