Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessGain L2 adjacency to Zephyr IPv6 node
-
DeliverySend burst of ICMPv6/UDP spoofing non-existent on-link source
-
ExploitTarget generates replies, first NS queued for spoofed address
-
ExecutionEach subsequent reply during 3s INCOMPLETE window leaks one TX net_pkt
-
PersistDefault 4-entry TX pool exhausted
-
ImpactNode cannot transmit any traffic, persistent DoS until reboot
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Resource cleanup, leak prevention
|
| Exploitation Conditions | IPv6 must be enabled in the Zephyr build and Neighbor Discovery must be active - both are default for any IPv6-capable Zephyr configuration, so no non-default setup is required beyond having IPv6 compiled in. The attacker must be on the same L2 network segment as the target (AV:A); this adjacency requirement is the primary practical barrier. The exploit is driven by sending packets whose destination triggers outbound replies from the Zephyr node toward a spoofed or non-existent on-link source address, so the attacker needs only the ability to inject arbitrary L2 frames. No authentication is required (PR:N). The leak rate is bounded by how quickly the target generates outbound packets during the ~3-second INCOMPLETE Neighbor Discovery resolution window; with the default CONFIG_NET_PKT_TX_COUNT=4, exhaustion requires as few as four leaked packets. The denial of service does not self-heal - the device cannot recover without reboot. Router-configured Zephyr nodes forwarding traffic toward a non-existent on-link host are equally vulnerable without requiring source-address spoofing. |
| Impact | The CVSS 6.5 (AV:A/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H) accurately captures the threat model. Adjacent-network positioning (AV:A) is the dominant limiting factor: the attacker must be on the same L2 segment, ruling out arbitrary internet-sourced exploitation. Within that constraint, the attack is mechanically trivial (AC:L, PR:N) and fully deterministic - the attacker controls the leak rate precisely. The availability impact (A:H) is accurately rated High: exhaustion of the default 4-packet TX pool produces a complete, non-self-healing network outage requiring physical reboot, which is operationally severe for unattended IoT and embedded deployments. No EPSS score was provided in the input data, so probability-based risk comparison is unavailable. The vulnerability is not listed in CISA KEV and no public exploit code has been identified, suggesting no observed active exploitation at time of writing. Despite the moderate numerical CVSS score, the real-world criticality is elevated for any Zephyr deployment in a shared or hostile L2 environment (factory floors, shared Wi-Fi, public infrastructure) where adjacent access cannot be controlled. For isolated dedicated segments, AV:A meaningfully reduces exposure. |
| Exploit ScenarioDerived | An attacker connected to the same Ethernet or Wi-Fi segment as a Zephyr device sends a rapid burst of ICMPv6 echo requests or UDP datagrams with a spoofed source address that appears on-link but resolves to no real host. The Zephyr node generates a reply for each, triggers NS generation for the spoofed address on the first, and leaks one TX net_pkt for every subsequent reply during the approximately three-second INCOMPLETE resolution window. With the default pool of four TX packets, four such iterations exhaust the pool and the device silently stops transmitting any traffic - TCP connections stall, ARP/ND probes are not sent, and the node appears dead on the network until rebooted. No public proof-of-concept has been identified, but the mechanics are straightforward for any attacker with L2 adjacency. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 31, 2026
TX packet pool exhaustion in Zephyr RTOS's IPv6 Neighbor Solicitation path allows an adjacent unauthenticated attacker to render a device permanently unable to transmit any network traffic. The leak in net_ipv6_send_ns() (subsys/net/ip/ipv6_nbr.c) occurs when an NS is already outstanding for a neighbor - each subsequent outbound packet during the ~3-second INCOMPLETE resolution window allocates a new net_pkt that is never released, silently consuming the fixed-size TX pool. With CONFIG_NET_PKT_TX_COUNT defaulting to as low as 4, a brief low-rate spoofed-source burst suffices to produce a complete, reboot-required network denial of service; no public exploit or active exploitation has been identified at time of analysis.
RemediationAI
The upstream fix is a single-line addition of net_pkt_unref(pkt) before the early return in net_ipv6_send_ns() in subsys/net/ip/ipv6_nbr.c, available in commit ab2670e8b5b8fcde4a699dd5cbe452abbd233289 (https://github.com/zephyrproject-rtos/zephyr/commit/ab2670e8b5b8fcde4a699dd5cbe452abbd233289). A released tagged patch version was not confirmed from the available input data - downstream users should monitor the security advisory at https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-x956-p489-8mf5 for an official release and apply the patch directly from the commit if urgent. As a compensating control, increasing CONFIG_NET_PKT_TX_COUNT at build time raises the burst threshold required to exhaust the pool but does not eliminate the leak and requires a firmware rebuild. Enforcing strict L2 port security or 802.1X to prevent unauthorized devices from joining the same network segment removes the attacker's adjacency entirely and is the most effective network-level mitigation. If IPv6 is not operationally required, disabling it in the build configuration eliminates the attack surface with no network functionality trade-off for IPv4-only deployments.
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
Zephyr RTOS uses statically allocated pools of net_pkt TX packet descriptors to manage outbound network traffic, configured at build time via CONFIG_NET_PKT_TX_COUNT (default 4 for non-Ethernet, 14 for Ethernet) and CONFIG_NET_BUF_TX_COUNT. The affected function net_ipv6_send_ns() in subsys/net/ip/ipv6_nbr.c is invoked on every outbound or forwarded IPv6 packet whose next-hop neighbor is unresolved, as called from net_ipv6_prepare_for_send() in net_if.c. The root cause is CWE-401 (Missing Release of Memory after Effective Lifetime): when the target neighbor's pending_queue is already non-empty - meaning an NS is already in flight for that address - the function appends the data packet, skips re-sending the NS, and returns early without calling net_pkt_unref(pkt) on the freshly allocated NS net_pkt. That descriptor and its attached TX buffers are held only by a local variable, so they are leaked permanently. The one-line fix confirmed in commit ab2670e8b5b8fcde4a699dd5cbe452abbd233289 inserts net_pkt_unref(pkt) immediately before the early return. CPE coverage is cpe:2.3:a:zephyrproject:zephyr:*:*:*:*:*:*:*:*, indicating no specific version bound in the affected range.
Know when Zephyr 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
AV:A/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Adjacent-only access required (AV:A), no privileges or interaction needed (PR:N/UI:N), and impact is availability-only from irreversible TX pool exhaustion (A:H).
Primary rating from Vendor (zephyr).
CVSS VectorVendor: zephyr
DescriptionCVE.org
net_ipv6_send_ns() in subsys/net/ip/ipv6_nbr.c allocates a transmit net_pkt for a Neighbor Solicitation. When it is called with a data packet pending on an unresolved neighbor and that neighbor's pending_queue is already non-empty (an NS is already outstanding), the function appends the data packet and returns early without ever sending the NS via net_send_data() or releasing it with net_pkt_unref(). The freshly allocated NS net_pkt and its attached TX buffers are held only by a local variable and are leaked permanently, never returning to CONFIG_NET_PKT_TX_COUNT / CONFIG_NET_BUF_TX_COUNT.
The leaking branch sits on the normal IPv6 transmit path: net_ipv6_prepare_for_send() (called from net_if.c) invokes net_ipv6_send_ns() 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 CONFIG_NET_PKT_TX_COUNT 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 net_pkt_unref(pkt) before the early return.
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
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
Potential off-by-one buffer overflow vulnerability in the Zephyr fuse file system. Rated critical severity (CVSS 10.0),
An out-of-bounds write in the Zephyr RTOS DNS resolver (dns_unpack_name()) lets a crafted DNS response corrupt memory on
Possible variant of CVE-2021-3434 in function le_ecred_reconf_req. Rated critical severity (CVSS 9.8), this vulnerabilit
Unchecked user input length in /subsys/net/l2/wifi/wifi_shell.c can cause buffer overflows. Rated critical severity (CVS
Potential buffer overflow vulnerability in the Zephyr CAN bus subsystem. Rated critical severity (CVSS 9.8), this vulner
Integer Underflow in 6LoWPAN IPHC Header Uncompression in Zephyr. Rated critical severity (CVSS 9.8), this vulnerability
Buffer overflow in Zephyr USB DFU DNLOAD. Rated critical severity (CVSS 9.8), this vulnerability is remotely exploitable
DOS: Incorrect 802154 Frame Validation for Omitted Source / Dest Addresses. Rated critical severity (CVSS 9.8), this vul
zephyr-rtos version 1.12.0 contains a NULL base pointer reference vulnerability in sys_ring_buf_put(), sys_ring_buf_get(
Potential buffer overflow vulnerabilities n the Zephyr Bluetooth subsystem. Rated critical severity (CVSS 9.6), this vul
The documentation specifies that the BT_GATT_PERM_READ_LESC and BT_GATT_PERM_WRITE_LESC defines for a Bluetooth characte
Potential buffer overflows in the Bluetooth subsystem due to asserts being disabled in /subsys/bluetooth/host/hci_core.c
EUVD-2026-68744
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB