CVE-2026-62948

OpenWrt odhcpd/LuCI: unauthenticated DHCPv6 client can inject lease-file lines via FQDN hostname → stored XSS in the LuCI admin UI

Published Jul 15, 2026 CVSS 3.1 · 9.6 Critical EPSS < 1% KEV · Not listed
Description
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.

Analysis

AI-generated

Technical impact

OpenWrt’s odhcpd daemon writes the DHCPv6 client FQDN option (option 39) into the lease file /tmp/odhcpd.leases without escaping. If the client supplies a hostname that contains a newline, the resulting lease file contains forged lease lines that are later rendered as raw HTML by the LuCI web interface. This allows an attacker that can send a crafted DHCPv6 request to inject arbitrary HTML into the Active DHCPv6 Leases page, resulting in a stored cross‑site scripting (XSS) vulnerability. The flaw is a classic input‑validation and output‑encoding weakness, reflected in the CWE‑117 and CWE‑79 identifiers.

Affected Systems

All OpenWrt installations running the default odhcpd package and LuCI web interface, including any version prior to 25.12.5, are affected. The problem originates in odhcpd’s state‑file generation code (statefiles_write_state6 and statefiles_write_state4) and the LuCI RPC module that displays the leases. The vulnerability was fixed in OpenWrt 25.12.5 and all subsequent releases.

Risk and Exploitability

The CVSS score of 9.6 signals a high‑severity flaw that allows arbitrary script execution in the browser of anyone who views the page. The EPSS score <1 % indicates that exploitation in the wild is currently rare. The vulnerability is not listed in CISA’s KEV catalog. Attackers need only transmit a specially crafted DHCPv6 request that contains a newline in the FQDN field; no additional authentication or higher‑level privileges are required. If the network allows DHCPv6 traffic from untrusted devices, the attacker can reach the router directly.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade OpenWrt to version 25.12.5 or later, which contains the patch.
  • Block or restrict DHCPv6 traffic from untrusted networks so only authorized clients can reach the router.
  • If immediate upgrade is not possible, disable odhcpd or remove the DHCPv6 lease page from LuCI to prevent rendering of malicious entries.

Generated by OpenCVE AI on July 31, 2026 at 03:07 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories available
History
Type Values Removed Values Added
First Time appeared Openwrt
Openwrt openwrt
Vendors & Products Openwrt
Openwrt openwrt
Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'poc', 'Technical Impact': 'total'}, 'version': '2.0.3'}

Type Values Removed Values Added
Description 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.
Title OpenWrt odhcpd/LuCI: unauthenticated DHCPv6 client can inject lease-file lines via FQDN hostname → stored XSS in the LuCI admin UI
Weaknesses CWE-117
CWE-150
CWE-79
References
Metrics cvssV3_1

{'score': 9.6, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:H'}

Weaknesses
  • CWE-117

    Improper Output Neutralization for Logs

  • CWE-150

    Improper Neutralization of Escape, Meta, or Control Sequences

  • CWE-79

    Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')

Sources

Status
PUBLISHED
Assigner
GitHub_M
Published
Updated
Jul 15, 2026, 6:08 PM
Reserved
Jul 14, 2026, 10:32 PM
Status
Analyzed
Published
Jul 15, 2026, 6:16 PM
Modified
Jul 21, 2026, 4:06 PM