Skip to main content

Zephyr RTOS CVE-2026-14697

| EUVDEUVD-2026-68744 MEDIUM
Memory Leak (CWE-401)
2026-08-31 zephyr
6.5
CVSS 3.1 · Vendor: zephyr
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Gain L2 adjacency to Zephyr IPv6 node
  2. Delivery
    Send burst of ICMPv6/UDP spoofing non-existent on-link source
  3. Exploit
    Target generates replies, first NS queued for spoofed address
  4. Execution
    Each subsequent reply during 3s INCOMPLETE window leaks one TX net_pkt
  5. Persist
    Default 4-entry TX pool exhausted
  6. Impact
    Node 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.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

Zephyr 4.3.0 <4.4.2

Affected Packages

euvd zephyr fix: 4.4.2

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

Vendor (zephyr) PRIMARY 6.5 MEDIUM
AV:A/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
vuln.today AI 6.5 MEDIUM

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).

3.1 AV:A/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
4.0 AV:A/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (zephyr).

CVSS VectorVendor: zephyr

Attack Vector
Adjacent
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
High

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

EPSS Score
0.2%
Top 93% exploitable
Prevalence
Low
niche embedded RTOS, limited to IoT and constrained-device deployments
Data Quality
6 sources
Confidence: High

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.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
None
System Exposure· derived
Controlled
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

32
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +32
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

More in Zephyr

View all
CVE-2023-4260 CRITICAL POC
10.0 Sep 27

Potential off-by-one buffer overflow vulnerability in the Zephyr fuse file system. Rated critical severity (CVSS 10.0),

CVE-2026-1678 CRITICAL POC
9.8 Mar 05

An out-of-bounds write in the Zephyr RTOS DNS resolver (dns_unpack_name()) lets a crafted DNS response corrupt memory on

CVE-2023-5055 CRITICAL POC
9.8 Nov 21

Possible variant of CVE-2021-3434 in function le_ecred_reconf_req. Rated critical severity (CVSS 9.8), this vulnerabilit

CVE-2023-4257 CRITICAL POC
9.8 Oct 13

Unchecked user input length in /subsys/net/l2/wifi/wifi_shell.c can cause buffer overflows. Rated critical severity (CVS

CVE-2023-3725 CRITICAL POC
9.8 Oct 06

Potential buffer overflow vulnerability in the Zephyr CAN bus subsystem. Rated critical severity (CVSS 9.8), this vulner

CVE-2021-3323 CRITICAL POC
9.8 Oct 12

Integer Underflow in 6LoWPAN IPHC Header Uncompression in Zephyr. Rated critical severity (CVSS 9.8), this vulnerability

CVE-2021-3625 CRITICAL POC
9.8 Oct 05

Buffer overflow in Zephyr USB DFU DNLOAD. Rated critical severity (CVSS 9.8), this vulnerability is remotely exploitable

CVE-2021-3319 CRITICAL POC
9.8 Oct 05

DOS: Incorrect 802154 Frame Validation for Omitted Source / Dest Addresses. Rated critical severity (CVSS 9.8), this vul

CVE-2018-1000800 CRITICAL POC
9.8 Sep 06

zephyr-rtos version 1.12.0 contains a NULL base pointer reference vulnerability in sys_ring_buf_put(), sys_ring_buf_get(

CVE-2023-4264 CRITICAL POC
9.6 Sep 27

Potential buffer overflow vulnerabilities n the Zephyr Bluetooth subsystem. Rated critical severity (CVSS 9.6), this vul

CVE-2024-1638 CRITICAL POC
9.1 Feb 19

The documentation specifies that the BT_GATT_PERM_READ_LESC and BT_GATT_PERM_WRITE_LESC defines for a Bluetooth characte

CVE-2023-5753 HIGH POC
8.8 Oct 25

Potential buffer overflows in the Bluetooth subsystem due to asserts being disabled in /subsys/bluetooth/host/hci_core.c

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy