odhcpd: pre-auth remote DoS via size_t underflow in dhcpv6_ia_handle_IAs (stack BOF, canary-terminated)
What fixes it
No source in this snapshot names a fixed version. The vendor advisories under References are the place to check.
Description
odhcpd is the DHCPv6, DHCPv4, and router-advertisement server used by OpenWrt. In commit cfddd56 and earlier, an unauthenticated host on the same link can 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.
Text from CVE List
Affected versions 2
- odhcpdaffected: < c6792bac3905d4bf726d914e9994f6d4b98c5b57CVE List
- openwrtaffected: < 25.12.5CVE List
References 6
- github.com/openwrt/odhcpd/commit/c6792bac3905d4bf726d914e9994f6d4b98c5b57Fixvia CVE List
- github.com/openwrt/odhcpd/commit/d08dbcc527cb8f296cd132c1e5bca696e77095b8Fixvia CVE List
- github.com/openwrt/odhcpd/commit/d168c27fb6a55a07ac4c888e09ff2f41e263d7b7Fixvia CVE List
- github.com/openwrt/odhcpd/commit/d329a15413387027453644cd363dca06ade28328Fixvia CVE List
- github.com/openwrt/openwrt/releases/tag/v25.12.5Fixvia CVE List
- github.com/openwrt/odhcpd/security/advisories/GHSA-7hcw-g2jh-pqv5Exploitvia CVE List