CVE-2026-55606
MediumCVSS 6.5Summary
In odhcpd versions 25.12 and prior, DHCPv6 self-loop detection uses a network-byte-order DUID length value as the memcmp() size parameter. On little-endian hosts, a single unauthenticated DHCPv6 packet triggers a 2560-byte overread from a 128-byte buffer.
Risk Assessment
An unauthenticated attacker can trigger a stack overread, potentially leading to information disclosure or a DHCP service crash.
Recommendation
No public patches are available — restrict access to the DHCPv6 service and monitor odhcpd releases for a fix.
Other vulnerabilities in odhcpd
See all- CVE-2026-53920High
In odhcpd (OpenWrt) versions 17.01.0 through 25.12.2, the DHCPv6 IA parser accepts an IA_NA or IA_PD option whose body is shorter than struct dhcpv6_ia_hdr, casts the option header to that structure, and reads ia->iaid before proving the IAID field exists. A short IA option at the end of the 8192-byte receive buffer causes an out-of-bounds read, and the disclosed bytes are reflected in the DHCPv6 reply IAID; this can leak the stack canary and ASLR-useful stack contents.
- CVE-2026-53918High
In odhcpd (OpenWrt) prior to version 25.12, the DHCPv6 IA handler keeps a per-message `first` lease pointer so multiple IA options reuse the same Reconfigure authentication key. A DHCPv6 REQUEST can make the first IA set `first`, then a later same-IAID IA fail the on-link check and free that lease, leaving `first` dangling; a following IA copies `first->key`, producing a 16-byte heap use-after-free read. The validated impact is unauthenticated adjacent-network denial of service and DHCPv6 Reconfigure/ForceRenew key confusion.
- CVE-2026-53921Critical
In odhcpd (the DHCPv6/DHCPv4/RA server used by OpenWrt) prior to version 25.12, the DHCPv6 IA response handler writes past a fixed 512-byte stack buffer (pdbuf) when a single DHCPv6 REQUEST carries enough IA options to nearly exhaust the reply space. Two independent overflow sites exist in the same call chain, both reachable over the network via a single unauthenticated UDP packet. odhcpd runs as root on OpenWrt, and embedded targets often lack stack canaries and ASLR, making code execution realistic.
- CVE-2026-62948Critical
A vulnerability in OpenWrt prior to 25.12.5 allows newline injection into /tmp/odhcpd.leases via the DHCPv6 FQDN option 39 hostname. Lack of escaping enables forged lease lines that are rendered as live HTML on the Active DHCPv6 Leases admin page in LuCI.
- CVE-2026-53922Medium
odhcpd in OpenWrt up to commit cfddd56 allows an unauthenticated host on the same link to first obtain two bindings through normal DHCPv6 SOLICIT and REQUEST exchanges and then send a crafted RENEW containing multiple IA_NA options. An earlier matched IA consumes most of the response buffer, an unmatched IA causes the build_ia() status branch to write and return a NOBINDING response larger than the remaining space, and a subsequent matched IA is processed after dhcpv6_ia_handle_IAs() subtracts that over-return from an unsigned size_t. The resulting underflow disables subsequent length checks and permits attacker-controlled IA_ADDR serialization beyond the 512-byte stack buffer pdbuf in handle_client_request(). The stack canary terminates odhcpd, and sustained packets can repeatedly disrupt DHCPv6 service while procd respawns the process. The observed configuration does not establish code execution.
Original NVD description (English source)
odhcpd is the DHCPv6, DHCPv4, and router-advertisement server used by OpenWrt. In versions 25.12 and prior, odhcpd's DHCPv6 self-loop detection at dhcpv6.c:720 uses a network-byte-order DUID length value directly as the memcmp() size parameter. On little-endian hosts, this causes memcmp() to read far beyond the stack buffer — a single unauthenticated DHCPv6 packet triggers a 2560-byte overread from a 128-byte buffer. At time of publication, there are no publicly available patches.
Vulnerability data from NVD (NIST) · CISA KEV · EPSS

