Impact
subsys/net/ip/icmpv6.c reads the network interface from a net_pkt after it has been handed to net_try_send_data(). This occurs in icmpv6_handle_echo_request() and net_icmpv6_send_error(), where post‑send statistics update calls net_pkt_iface(reply)/net_pkt_iface(pkt) on the just‑sent packet. Because the send path may unreference and free the packet before returning, net_pkt_iface() dereferences a potentially freed net_pkt. With per‑interface statistics enabled, the stale iface pointer is further dereferenced and incremented, turning a use‑after‑free read into a write through an attacker‑influenceable pointer. The core stack warns against using packets after that call, but the ICMPv6 callers did not cache the interface. This flaw can be triggered by an unauthenticated remote attacker who sends an ICMPv6 Echo Request or an IPv6 packet that causes an ICMPv6 error; it can crash the device or corrupt memory, resulting in denial of service.
Affected Systems
The vulnerability affects Zephyr RTOS networking modules compiled with CONFIG_NET_NATIVE_IPV6 and configured for per‑interface statistics (CONFIG_NET_STATISTICS_PER_INTERFACE). Firmware releases approximately from version 4.2.0 through 4.4.0 contain the flaw and any embedded device running those releases with an exposed IPv6 interface is susceptible.
Risk and Exploitability
The CVSS score of 5.9 reflects a moderately high severity, primarily because the vulnerability can be triggered remotely by an unauthenticated attacker. The EPSS score of less than 1% indicates a very low probability of widespread exploitation, and the issue is not listed in CISA’s KEV catalog. An attacker can cause the crash simply by sending an ICMPv6 Echo Request or an IPv6 packet that elicits an ICMPv6 error; no privileges or local access are needed. The impact is localized to the affected device, potentially causing denial of service or memory corruption.
OpenCVE Enrichment