CVE-2026-14697: IPv6 Neighbor Solicitation packet leak causes TX pool exhaustion denial of service

Published Aug 31, 2026
·
Updated

netipv6sendns() in subsys/net/ip/ipv6nbr.c allocates a transmit netpkt for a Neighbor Solicitation. When it is called with a data packet pending on an unresolved neighbor and that neighbor's pendingqueue is already non-empty (an NS is already outstanding), the function appends the data packet and returns early without ever sending the NS via netsenddata() or releasing it with netpktunref(). The freshly allocated NS netpkt and its attached TX buffers are held only by a local variable and are leaked permanently, never returning to CONFIGNETPKTTXCOUNT / CONFIGNETBUFTXCOUNT.

The leaking branch sits on the normal IPv6 transmit path: netipv6prepareforsend() (called from netif.c) invokes netipv6sendns() for any outbound or forwarded IPv6 packet whose next hop is not yet in the neighbor cache. An on-link (adjacent) attacker can drive it deterministically by sending a burst of request packets (for example ICMPv6 echo requests or UDP datagrams) that all spoof a single non-existent on-link source address: the node generates a reply to each, the first reply queues an NS, and every subsequent reply during the roughly three-second INCOMPLETE resolution window takes the leaking branch and loses one TX packet. Router-configured nodes forwarding attacker traffic toward a non-existent on-link host leak identically.

Because the leaked packets are never reclaimed and CONFIGNETPKTTXCOUNT defaults to only 4 (14 for Ethernet), a brief low-rate burst exhausts the TX pool. Once exhausted the node can no longer allocate any transmit packet and cannot send TCP/UDP, ARP/ND, or any reply at all, producing a complete and persistent network denial of service that does not self-heal until reboot. The fix releases the unsent NS packet with netpktunref(pkt) before the early return.

Affected Software

1 affected component
Zephyr RTOS

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Configuration

    Increase CONFIG_NET_PKT_TX_COUNT (defaults noted as 4; 14 for Ethernet) to provide a larger TX pool so a burst cannot exhaust transmit packet buffers during the IPv6 Neighbor Solicitation packet leak.

    Zephyr net stack CONFIG_NET_PKT_TX_COUNT = Increase
  2. Operational

    Reboot the node after TX pool exhaustion to restore network functionality, since the denial of service does not self-heal until reboot.

Event History

Aug 31, 2026
CVE Published
via MITRE·07:34 PM
Data Sourced
via MITRE·07:34 PM
DescriptionSeverityWeakness
Data Sourced
via NVD·08:17 PM
DescriptionSeverityWeakness

Frequently Asked Questions

1

Is remote Internet access alone sufficient to exploit this issue?

No. The described attack requires an on-link, adjacent attacker that can send request packets to the target while spoofing a single non-existent on-link IPv6 source address.

2

Which traffic paths can trigger the resource leak?

The leak is on the normal IPv6 transmit path when an outbound or forwarded IPv6 packet has a next hop that is not yet present in the neighbor cache. It is triggered when neighbor resolution is already incomplete and the neighbor's pending queue is non-empty.

3

What is the practical impact of repeated exploitation?

Each affected request leaks a transmit net_pkt and its attached TX buffers permanently. Repetition exhausts CONFIG_NET_PKT_TX_COUNT and CONFIG_NET_BUF_TX_COUNT, causing denial of service.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203