Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessGain L2 access to DHCP link
-
DeliverySend lease request with crafted FQDN hostname
-
Exploitodhcpd writes unescaped forged line to leases file
-
ExecutionAdmin opens LuCI Active Leases page
-
Persistdom.append renders payload as live HTML
-
ImpactExecute JS in admin session, alter router config
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 | Requires odhcpd running as the DHCPv6/DHCPv4 server, which is the default OpenWrt configuration, and an attacker able to send DHCP requests on the local link with a crafted FQDN option 39 / option 12 hostname carrying an embedded newline plus HTML/JS. Critically, the payload only executes when an authenticated administrator opens the LuCI Status → Active DHCPv6 Leases (or DHCPv4 leases) admin page (UI:R) - it does not fire autonomously. Limiting factors: the attacker must be network-adjacent to the DHCP segment (DHCP is link-local, not routable Internet-wide), and no exploitation occurs without an admin viewing the affected LuCI page, so this is opportunistic rather than automatable. |
| Impact | The NVD CVSS 3.1 score is 9.6 (AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:H), reflecting an unauthenticated injector, scope change into the admin session, and full C/I/A impact on a router. However, several signals temper the raw score. First, the attack vector is realistically network-adjacent rather than truly remote: DHCPv6/DHCPv4 exchanges occur on the local link, so the attacker generally needs L2 access to the DHCP segment (AV:A is a more defensible metric than AV:N - verify against your deployment topology). Second, UI:R is a genuine gate - exploitation only fires when an administrator opens the LuCI leases status page, making this opportunistic rather than automatable. There is no EPSS score, no KEV listing, and no POC in the provided data, so this is a high-severity-by-construction issue without evidence of active exploitation. Given XSS in a router admin panel can pivot to full device configuration changes, it remains a real patch priority for exposed or multi-tenant LAN environments, but it is not a wormable internet-facing RCE. |
| Exploit ScenarioDerived | An attacker with access to the LAN/DHCP link connects a device that requests a lease with a crafted DHCPv6 FQDN option 39 (or DHCPv4 option 12) hostname containing an embedded newline and an HTML/JavaScript payload. odhcpd writes the forged line into /tmp/odhcpd.leases, and when the router administrator later opens the LuCI Active DHCPv6 Leases page, the payload executes in their authenticated session, allowing router configuration changes. No public POC is identified at time of analysis; the network-adjacent vector plus required admin page view (UI:R) make this opportunistic. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jul 15, 2026
Stored cross-site scripting in OpenWrt's default odhcpd server (all releases prior to 25.12.5) lets a network-adjacent DHCP client inject forged lease records that execute as HTML/JavaScript in a router administrator's browser. The client-supplied DHCPv6 FQDN option 39 (and DHCPv4 option 12) hostname is written unescaped into /tmp/odhcpd.leases, enabling newline injection of attacker-controlled fields that LuCI's Active DHCPv6 Leases page renders via unsafe dom.append. No public exploit is identified at time of analysis, and the flaw is not in CISA KEV; it is fixed in 25.12.5.
RemediationAI
Vendor-released patch: OpenWrt 25.12.5 - upgrade firmware via the OpenWrt Firmware Selector (https://firmware-selector.openwrt.org/?version=25.12.5) or the release page (https://github.com/openwrt/openwrt/releases/tag/v25.12.5), which also bundles fixes for several other odhcpd CVEs (CVE-2026-53921, -53918, -53920, -53922, -55606). If you cannot immediately flash new firmware, cherry-pick the odhcpd fix (PR #404, adding statefiles_escape_hostname) and the LuCI '%h'.format() escaping commit (55379d04). As compensating controls until patched: avoid opening the LuCI Status → Active DHCP Leases page (the sink that triggers execution), since the payload only fires on admin view; restrict which hosts can obtain leases by binding odhcpd/dnsmasq to trusted VLANs and enforcing L2 segmentation so untrusted clients cannot register hostnames; and limit LuCI admin access to a management network. Note the trade-off: not viewing the leases page reduces operational visibility, and segmenting DHCP clients may break flat-network device discovery.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The vulnerability spans two components. In odhcpd (the combined DHCPv6/DHCPv4/RA server enabled by default on OpenWrt), src/statefiles.c functions statefiles_write_state6() and statefiles_write_state4() serialize each lease as a space-delimited, line-based record into /tmp/odhcpd.leases. Because DNS labels may legally carry arbitrary octets (RFC 2181 §11) and the option parser copies bytes verbatim, an attacker-controlled hostname could embed a newline (forging an extra lease line) or a space (forging additional fields). On the display side, LuCI rpcd-mod-luci getDHCPLeases feeds these fields into 40_dhcp.js, which used dom.append (luci.js) to insert the host and vendor strings as live DOM nodes without the '%h' HTML-escaping format specifier. This is a classic CWE-79 stored/persistent XSS: untrusted input crosses a trust boundary from an unauthenticated network client into an authenticated admin web context. The fix escapes non-LDH hostname bytes as \xNN in odhcpd and applies '%h'.format() on the host/vendor fields in LuCI.
Know when Openwrt 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
AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:H
DHCP is link-local so AV:A over NVD's AV:N; unauthenticated client (PR:N) but admin must view the leases page (UI:R); XSS in admin session crosses scope (S:C) enabling full router config C/I/A.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
OpenWrt is a Linux operating system targeting embedded devices. Prior to 25.12.5, odhcpd writes a DHCPv6 client FQDN option 39 hostname into /tmp/odhcpd.leases through src/statefiles.c statefiles_write_state6() and statefiles_write_state4() without escaping, allowing newline injection of forged lease lines that LuCI rpcd-mod-luci getDHCPLeases displays through htdocs/luci-static/resources/view/status/include/40_dhcp.js and htdocs/luci-static/resources/luci.js dom.append as live HTML in the Active DHCPv6 Leases admin page. This vulnerability is fixed in 25.12.5.
Executive ViewAI
OpenWrt routers running versions prior to 25.12.5 contain a critical vulnerability (CVSS 9.6) that allows attackers with network access to inject malicious code into administrator interfaces, potentially enabling complete unauthorized network control. Any organization using OpenWrt deployments is at risk of administrative compromise; no public exploitation has been identified at time of analysis.
Apply vendor patch: upgrade to OpenWrt 25.12.5
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.
In wlan service, there is a possible out of bounds write due to improper input validation. Rated critical severity (CVSS
An issue was discovered in OpenWrt 18.06.0 to 18.06.6 and 19.07.0, and LEDE 17.01.0 to 17.01.7. Rated high severity (CVS
An issue was discovered in OpenWrt libuci (aka Library for the Unified Configuration Interface) before 15.05.1 as used o
cgi_handle_request in uhttpd in OpenWrt through 18.06.1 and LEDE through 17.01 has unauthenticated reflected XSS via the
In wlan service, there is a possible out of bounds write due to an incorrect bounds check. Rated critical severity (CVSS
An exploitable information leak vulnerability exists in the ustream-ssl library of OpenWrt, versions 18.06.4 and 15.05.1
An exploitable information leak vulnerability exists in the ustream-ssl library of OpenWrt, versions 18.06.4 and 15.05.1
Remote privilege escalation in Android WLAN AP driver via packet injection.
In wlan AP driver, there is a possible out of bounds write due to an incorrect bounds check. This could lead to local es
In wlan AP driver, there is a possible out of bounds write due to an incorrect bounds check. This could lead to local es
In wlan AP driver, there is a possible out of bounds write due to an incorrect bounds check. This could lead to local es
Remote code execution in OpenWrt's mDNS daemon (versions before 24.10.6 and 25.12.1) allows unauthenticated attackers to
EUVD-2026-44748
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB