Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessGain access to local IPv6 link
-
ExploitSend DHCPv6 request with zero-length IA_NA at buffer boundary
-
ExecutionTrigger out-of-bounds read of ia->iaid past data_buf[8192]
-
ImpactReceive leaked stack canary/pointers reflected in reply IAID
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Bounds checking, read limits
MITRE ATT&CK
1 technique across 1 tactic: Collection The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | odhcpd must be running with DHCPv6 server handling enabled on the target interface, and the attacker must be able to send DHCPv6 client traffic on the local IPv6 link (link-local adjacency, not internet-routable). The request must contain a valid Client Identifier so dhcpv6_ia_handle_IAs() processes IA options, and the final IA_NA or IA_PD option must be short enough (the repro uses olen==0) that the ia->iaid read crosses the 8192-byte receive-buffer boundary. The network path must deliver an 8192-byte UDP datagram; this does not require changing the target MTU because IPv6 fragmentation can reassemble before recvmsg(). Limiting factors that reduce real-world risk: requires same-link adjacency, DHCPv6 server mode must be enabled, and each request discloses only ~4 bytes (reflected as the reply IAID), so defeating ASLR/canary requires many probing requests. |
| Impact | This is a genuine but second-tier priority: a real, validated flaw whose impact is confined to information disclosure. The input CVSS 4.0 score is 8.7 (High) with vector AV:N/AC:L/AT:N/PR:N/UI:N and VC:H only (VI:N/VA:N), reflecting an unauthenticated, low-complexity read of high-value memory with no integrity or availability impact. Signals partly conflict on reachability: the scored vector uses AV:N (network), but the advisory and description repeatedly state the attacker must be 'network-adjacent' on the 'local IPv6 link' - DHCPv6 is link-local, so adjacency (AV:A) is the accurate attack vector and AV:N overstates internet-wide exposure; verify reachability assumptions before prioritizing. No EPSS score is provided in the input, so probabilistic exploitation likelihood cannot be weighed. The CVE is not listed in CISA KEV, so there is no evidence of active exploitation - treat as not-yet-exploited. The vuln.today Decision label is 'this_week' (not act_now/emergency), consistent with a serious-but-not-crisis item. A public PoC reference exists in the GHSA advisory as a detailed, maintainer-validated reproducer (ASAN stack-buffer-overflow report plus a native run leaking the stack canary 00cf9a87 and ~392 bytes of stack), though the input does not confirm it as independently published, working exploit code. The standalone impact is limited - roughly four bytes reflected per request as the reply IAID - so its true danger is as a mitigation-bypass primitive: leaking the stack canary and ASLR-useful stack/process pointers to enable a separate memory-corruption exploit. Net: patch on a near-term (this-week) cadence, especially on OpenWrt devices exposing DHCPv6 to untrusted link-local segments; this is not a drop-everything emergency absent KEV/EPSS evidence. |
| Exploit ScenarioDerived | An unauthenticated attacker on the same IPv6 link sends odhcpd a DHCPv6 client request carrying a valid Client Identifier and a final IA_NA or IA_PD option with a zero-length body positioned at offset 8188 of an 8192-byte datagram. odhcpd casts the short option to struct dhcpv6_ia_hdr and reads ia->iaid from bytes 8192-8196 - past the receive buffer and into the stack frame - then reflects those bytes back as the reply IAID, disclosing the saved stack canary (and, via repeated boundary scans, further stack pointers). A maintainer-validated PoC reference in the GHSA advisory demonstrates this leak; attack complexity is low but requires link-local adjacency. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 23, 2026
An out-of-bounds stack read in OpenWrt's odhcpd DHCPv6 server lets an unauthenticated client on the same IPv6 link disclose server stack memory, roughly four bytes per request, by placing a zero-length or otherwise truncated IA_NA/IA_PD option at the very end of the daemon's 8192-byte receive buffer; the disclosed bytes are reflected back to the sender as the IAID in odhcpd's DHCPv6 reply. Every inspected OpenWrt stable release from 17.01.0 through the 25.12.x series pins a vulnerable odhcpd commit, and the impact is confidentiality-only (assessed CVSS:3.1 AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N). A validated proof-of-concept reproducer, published alongside the upstream advisory, leaks the saved stack canary on ARM, but there is no CISA KEV listing and each probe returns only about four bytes, so defeating canary and ASLR protections requires many requests.
RemediationAI
Apply the upstream guard and rebuild. The complete fix is the length check introduced in https://github.com/openwrt/odhcpd/commit/719fc3abc0d7e7059871f9f572fb05ada86b8ff2 (with https://github.com/openwrt/odhcpd/commit/f2275efc72a87a95f971f159babcbadc5d241d42 also referenced), so upgrade to an OpenWrt build whose odhcpd PKG_SOURCE_VERSION includes that check; the CVE description identifies 25.12.3 as the patched release, but because the accompanying package metadata still reports 'fixed in: not yet patched' and the advisory states that no fixed release tag had been identified, verify the guard is present in the shipped odhcpd source rather than relying on the version string alone. If upgrading cannot be done immediately, reduce exposure by turning off DHCPv6 server handling on interfaces reachable by untrusted clients (leaving routing or DHCPv4 in place), accepting that downstream clients lose stateful DHCPv6 addressing and IA_PD prefix delegation, and by keeping the DHCPv6 server off shared or untrusted Layer-2 segments so only link-local adjacent hosts that already reach odhcpd can trigger the read; neither measure removes the bug, since the vendor's short-IA guard is the only complete fix. Operators should also expect that repeated boundary probes of roughly 8192-byte DHCPv6 datagrams are what enable the byte-by-byte canary and pointer disclosure, so limiting who can send DHCPv6 client traffic to the daemon is the practical control available until the patched odhcpd is deployed.
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
DHCPv6 encodes each option as a 2-byte code, 2-byte length and a body; an IA_NA or IA_PD option must carry at least 12 body bytes (iaid, t1, t2) before any sub-options, making the on-wire header 16 bytes when the generic 4-byte option header is included (RFC 8415 sections 21.4 and 21.21). odhcpd_receive_packets() reads datagrams into a fixed 8192-byte stack buffer (uint8_t data_buf[8192]) and hands it to handle_client_request() and then dhcpv6_ia_handle_IAs(). The option iterator only proves that the option header plus its declared body fall inside the received datagram, so IA_NA/IA_PD bodies of length 0 to 11 pass validation; the parser nevertheless casts the option header to struct dhcpv6_ia_hdr and dereferences ia->iaid before confirming the IAID field exists. With an option header at data_buf[8188] and olen == 0, odata points exactly at data_buf + 8192 and the 4-byte read crosses into adjacent stack memory (AddressSanitizer reports a read of size 4 at dhcpv6-ia.c:1029, at offset 8704 relative to the data_buf frame). The root cause class is CWE-125 (out-of-bounds read), with the advisory additionally classifying it as CWE-126, CWE-200 and CWE-201 because the fetched bytes are copied into the outgoing struct dhcpv6_ia_hdr and returned in the reply IAID; ARM validation showed data_buf[8192:8196] holding the saved stack canary, and wider high-window scans surfaced pointer candidates useful for ASLR bypass. The upstream fix adds a length guard of the form 'if (olen < sizeof(struct dhcpv6_ia_hdr) - DHCPV6_OPT_HDR_SIZE) continue;'. Triggering it requires odhcpd in DHCPv6 server mode on the target interface, a valid Client Identifier in the request, a short trailing IA option, and delivery of a full 8192-byte UDP datagram, which IPv6 fragmentation can reassemble before recvmsg() without any MTU change.
Know when Odhcpd 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:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N
DHCPv6 is link-local so AV:A (not AV:N); a single crafted packet with no auth gives AC:L/PR:N/UI:N; disclosure of stack canary and pointers is serious confidentiality only, so C:H, I:N, A:N.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
odhcpd is the DHCPv6, DHCPv4, and router-advertisement server used by OpenWrt. From version 17.01.0 to before version 25.12.3, odhcpd's 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 full structure, and reads ia->iaid before proving that the IA body contains the IAID field. If an unauthenticated network-adjacent client places a zero-length or otherwise short IA option at the end of odhcpd's 8192-byte receive stack buffer, the IAID read crosses from data_buf into adjacent stack memory. The disclosed bytes are then reflected in the DHCPv6 reply IAID; prior ARM validation showed data_buf[8192:8196] disclosing the saved stack canary, and wider stack scans can leak ASLR-useful stack/process contents. This issue has been patched in version 25.12.3.
Technical POC Analysis
CWE-125 (out-of-bounds read; the advisory also tags CWE-126, CWE-200, CWE-201).
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
OpenWrt's DHCPv6 server component (odhcpd) is affected by a high-severity information disclosure vulnerability (CVE-2026-53920) that allows an unauthenticated attacker on the same IPv6 network segment to leak small portions of server stack memory. This could enable attackers to bypass memory protections and potentially escalate to more severe attacks, affecting all OpenWrt stable releases from 17.01.0 through 25.12.x, which are widely used in networking gear and IoT devices. Leadership should prioritize patching due to the broad deployment base and the potential for follow-on exploitation.
Apply vendor patch.
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
A buffer overflow occurs when a program writes more data to a memory buffer than it was allocated to hold, causing the excess data to spill into adjacent memory regions.
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
A heap use-after-free in OpenWrt's odhcpd DHCPv6 IA handler allows an unauthenticated client on the same local link or a
Unauthenticated flooding of crafted DHCPv6 RENEW messages can repeatedly crash odhcpd, the DHCPv6/DHCPv4/router-advertis
EUVD-2026-108968
NVD
CVE.org
Vulnrichment
GitHub
Exploit-DB