OpenWrt Project has a Stack-based Buffer Overflow vulnerability via IPv6 reverse DNS lookup
OpenWrt Project is a Linux operating system targeting embedded devices. In versions prior to 24.10.6 and 25.12.1, the mdns daemon has a Stack-based Buffer Overflow vulnerability in the match_ipv6_addresses function, triggered when processing PTR queries for IPv6 reverse DNS domains (.ip6.arpa) received via multicast DNS on UDP port 5353. During processing, the domain name from name_buffer is copied via strcpy into a fixed 256-byte stack buffer, and then the reverse IPv6 request is extracted into a buffer of only 46 bytes (INET6_ADDRSTRLEN). Because the length of the data is never validated before this extraction, an attacker can supply input larger than 46 bytes, causing an out-of-bounds write. This allows a specially crafted DNS query to overflow the stack buffer in match_ipv6_addresses, potentially enabling remote code execution. This issue has been fixed in versions 24.10.6 and 25.12.1.
References
- https://github.com/openwrt/openwrt/security/advisories/GHSA-mpgh-v658-jqv5 x_refsource_CONFIRM
- https://github.com/openwrt/openwrt/releases/tag/v24.10.6 x_refsource_MISC
- https://github.com/openwrt/openwrt/releases/tag/v25.12.1 x_refsource_MISC
Affected products
- ==< 24.10.6
- ==>= 25.12.0-rc1, < 25.12.1
Matching in nixpkgs
pkgs.terraform-providers.openwrt
None
pkgs.python312Packages.openwrt-luci-rpc
Python module for interacting with the OpenWrt Luci RPC interface
pkgs.python312Packages.openwrt-ubus-rpc
Python API for OpenWrt ubus RPC
pkgs.python313Packages.openwrt-luci-rpc
Python module for interacting with the OpenWrt Luci RPC interface
pkgs.python313Packages.openwrt-ubus-rpc
Python API for OpenWrt ubus RPC
pkgs.python314Packages.openwrt-luci-rpc
Python module for interacting with the OpenWrt Luci RPC interface
pkgs.python314Packages.openwrt-ubus-rpc
Python API for OpenWrt ubus RPC
Package maintainers
-
@matt-snider Matt Snider <matt.snider@protonmail.com>
-
@fabaff Fabian Affolter <mail@fabian-affolter.ch>