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/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
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
Lifecycle Timeline
1DescriptionCVE.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.
AnalysisAI
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.
Technical ContextAI
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.
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.
In OpenWrt LuCI through 0.10, the endpoints admin/status/realtime/bandwidth_status and admin/status/realtime/wireless_st
Stored cross-site scripting in OpenWrt's LuCI web interface lets an adjacent-network attacker inject executable HTML/Jav
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
Ban-list poisoning in OpenWrt's luci-app-banip (banIP) before 1.8.10 lets an unauthenticated remote attacker steer the a
Unauthenticated path traversal in OpenWrt's luci-app-bmx7 package exposes arbitrary files on affected routers via the bm
Stored cross-site scripting in OpenWrt's luci-app-upnp lets an unauthenticated LAN client persist a JavaScript payload t
Privilege escalation to root in OpenWrt's luci-app-samba4 (LuCI web interface) lets authenticated delegated users invoke
A stored cross-site scripting (XSS) vulnerability exists in the OpenWrt LuCI web interface where malicious JavaScript co
Same weakness CWE-79 – Cross-site Scripting (XSS)
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-51867
GHSA-8ggv-vmgf-36wq