Skip to main content

Zephyr RTOS EUVDEUVD-2026-37117

| CVE-2026-10640 HIGH
Use After Free (CWE-416)
2026-06-16 zephyr
7.1
CVSS 3.1 · NVD
View

Attack ChainAIDerived

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

  1. Access
    Gain adjacent on-link network access
  2. Delivery
    Send crafted ICMPv6 Neighbor Solicitation
  3. Exploit
    handle_ns_input invokes net_ipv6_send_na
  4. Execution
    Packet freed on successful send
  5. Persist
    Stale net_pkt_iface(pkt) dereferenced (UAF)
  6. Impact
    Fault/crash causing denial of service

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Memory lifecycle management
MITRE ATT&CK

2 techniques across 2 tactics: Execution, Privilege Escalation

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires that the target Zephyr node (versions 3.3.0-4.4.0) be built with native IPv6 enabled and reachable from an adjacent on-link node, and that CONFIG_NET_STATISTICS_PER_INTERFACE be enabled for the use-after-free/memory-safety impact (without it, only a benign global counter is touched). The trigger is sending ICMPv6 Neighbor Solicitations, which reach net_ipv6_send_na via handle_ns_input; no authentication or user interaction is needed (PR:N/UI:N). Limiting factors: the attacker must be on the same link (AV:A - not routable across the internet), and the freed-then-freshly-reallocated timing window is more deterministic when no TX queue thread is configured (synchronous unref) but becomes a race when a concurrent TX thread exists. Builds without per-interface statistics are not affected by the memory-safety aspect.

Impact

Signals are broadly consistent and point to a real-but-moderate priority. The CVSS 3.1 vector (AV:A/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:H, score 7.1) reflects adjacent-network reach, no authentication, no user interaction, and a primarily availability impact - matching the description of an on-link unauthenticated attacker causing crashes. SSVC reinforces a measured stance: Exploitation 'none' (no observed exploitation), Automatable 'no', and Technical Impact 'partial', and it is not on the CISA KEV list. EPSS is low at 0.14% (4th percentile), consistent with a DoS-class embedded RTOS bug rather than a mass-exploited RCE. Importantly, the memory-safety aspect is conditional: only deployments with CONFIG_NET_STATISTICS_PER_INTERFACE enabled are affected; configurations using only a global counter dereference a valid global and are not subject to the UAF. The 'potential limited memory corruption' beyond DoS is speculative in the description (depends on slab reallocation timing/contents) and should not be treated as confirmed code execution. Net: prioritize patching on IPv6-enabled Zephyr devices with per-interface statistics, but this is not a high-urgency wormable issue.

Exploit ScenarioDerived

An attacker on the same link layer as a Zephyr device (e.g., the same Ethernet/Wi-Fi segment) sends crafted ICMPv6 Neighbor Solicitations to the target's IPv6 address. The handle_ns_input path invokes net_ipv6_send_na, which after sending reads the freed packet's interface pointer; on a device built with per-interface statistics, this use-after-free can fault and crash the node, producing a denial of service. No authentication or user interaction is required, though adjacent-network access is; no public exploit code is currently identified.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.1% exploitation probability (EPSS)

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

Alert me

AnalysisAIv3 – Jun 26, 2026

Denial of service (and potential limited memory corruption) in the Zephyr RTOS IPv6 networking stack (versions 3.3.0 through 4.4.0) stems from a use-after-free in the IPv6 Neighbor Discovery send paths, where per-interface ICMP statistics are updated by reading from a network packet after the stack has already freed it. Any unauthenticated on-link node can trigger the Neighbor Advertisement path simply by sending ICMPv6 Neighbor Solicitations to a Zephyr node with native IPv6 and CONFIG_NET_STATISTICS_PER_INTERFACE enabled, causing a freed slab block to be dereferenced. There is no public exploit identified at time of analysis and EPSS is low (0.14%, 4th percentile); a vendor patch is available, and impact is largely limited to crashes/DoS with only theoretical limited memory corruption.

Earlier versions of this analysis (2)
v2 Jun 26, 2026 - 20:58 cvss changed CVSS 7.1

Use-after-free in Zephyr RTOS's IPv6 Neighbor Discovery code (subsys/net/ip/ipv6_nbr.c, versions 3.3.0 through 4.4.0) lets any unauthenticated on-link node trigger a denial of service by sending ICMPv6 Neighbor Solicitations to a Zephyr device with native IPv6 enabled. The send paths increment per-interface ICMP statistics by reading pkt->iface after net_send_data() already released the packet's last reference, so the freed slab block is dereferenced - causing crashes, corrupted statistics, or limited memory corruption. Only builds with CONFIG_NET_STATISTICS_PER_INTERFACE enabled are affected by the memory-safety bug; no public exploit identified at time of analysis (EPSS 0.14%, SSVC exploitation: none).

v1 Jun 16, 2026 - 15:41 CVSS 4.2

Use-after-free in Zephyr RTOS IPv6 Neighbor Discovery (v3.3.0-v4.4.0) exposes an on-link attacker to trigger memory corruption or a crash by sending ICMPv6 Neighbor Solicitations to any Zephyr node with native IPv6 and per-interface statistics enabled. The flaw exists in three NDP send paths - net_ipv6_send_na, net_ipv6_send_ns, and net_ipv6_send_rs - where statistics are updated via the already-freed packet after net_send_data() relinquishes ownership. No public exploit code exists and the vulnerability is not listed in CISA KEV, but the NA path is directly reachable from any adjacent unauthenticated node, making it an accessible trigger under the required configuration.

RemediationAI

Upgrade to Zephyr 4.5.0 or later, which incorporates the upstream fix (commit aaed8332a62b0490a2f3c2cbabe272f575068eaa) that replaces net_pkt_iface(pkt) with the already-available iface argument in net_ipv6_send_na, net_ipv6_send_ns, and net_ipv6_send_rs; see the advisory at https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-r74c-mr4m-7g9g. Because Zephyr is typically vendored into device firmware, downstream maintainers should cherry-pick the one-line-per-function commit into their pinned tree and rebuild/redeploy firmware. As a compensating control where firmware cannot be rebuilt immediately, disabling CONFIG_NET_STATISTICS_PER_INTERFACE removes the memory-safety impact (the global-counter path is not affected), at the cost of losing per-interface ICMP statistics; alternatively, restricting or filtering inbound ICMPv6 Neighbor Solicitations at the L2 segment or disabling native IPv6 where unused reduces reachability, with the trade-off of impaired IPv6 neighbor discovery functionality.

Affected VersionsENISA

Zephyr 3.3.0 <4.5.0

Affected Packages

euvd zephyr fix: 4.5.0

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

The affected component is Zephyr's IPv6 Neighbor Discovery implementation in subsys/net/ip/ipv6_nbr.c, specifically net_ipv6_send_na, net_ipv6_send_ns, and net_ipv6_send_rs. Zephyr manages network packets (net_pkt) using reference-counted slab-allocated blocks; on a successful net_send_data() call, the L2/driver send path (e.g. ethernet_send) owns and releases the packet's final reference via net_pkt_unref, freeing the slab block. The root cause (CWE-416, Use After Free) is that the statistics line called net_pkt_iface(pkt) after net_send_data() returned, reading the pkt->iface field from a slab block whose refcount may already have dropped to zero and been freed - synchronously when no dedicated TX queue thread is configured, or via a race with a concurrent TX thread otherwise. When CONFIG_NET_STATISTICS_PER_INTERFACE is enabled, that stale pointer is dereferenced to increment iface->stats.icmp.sent. The CPE cpe:2.3:a:zephyrproject:zephyr identifies the affected product. The fix is trivial and correct: use the already-available iface function argument instead of re-deriving it from the sent packet.

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 MEDIUM
NVD 7.1 HIGH
AV:A/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:H
vuln.today AI 7.1 HIGH

On-link unauthenticated trigger via ICMPv6 (AV:A/PR:N/UI:N); primary impact is crash/DoS (A:H) with only marginal integrity from stat corruption (I:L) and no confidentiality (C:N).

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

Primary rating from Vendor (zephyr).

CVSS VectorNVD

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

Lifecycle Timeline

4
Analysis Updated
Jun 26, 2026 - 20:58 vuln.today
v3 - CVSS changed
Analysis Updated
Jun 26, 2026 - 20:58 vuln.today
v2 - CVSS changed
Severity Changed
Jun 26, 2026 - 20:52 NVD
MEDIUM HIGH
CVSS changed
Jun 26, 2026 - 20:52 NVD
4.2 (MEDIUM) 7.1 (HIGH)

DescriptionNVD

Zephyr's IPv6 Neighbor Discovery send paths (net_ipv6_send_na, net_ipv6_send_ns, net_ipv6_send_rs in subsys/net/ip/ipv6_nbr.c) updated the per-interface ICMP-sent statistics by calling net_pkt_iface(pkt) after net_send_data(pkt) had already returned successfully. On the success path the network stack owns and releases the packet's reference (the L2/driver send unrefs it, e.g. ethernet_send - net_pkt_unref), so for a freshly allocated packet with refcount 1 the net_pkt slab block can be freed before the statistics line runs (synchronously when no TX queue thread is configured, or via a concurrent TX thread otherwise).

The subsequent net_pkt_iface(pkt) reads pkt-iface from the freed slab block, and with CONFIG_NET_STATISTICS_PER_INTERFACE enabled that loaded pointer is dereferenced to increment iface-stats.icmp.sent, a use-after-free (CWE-416). If the slab block was reallocated in the meantime the read/increment targets unrelated or attacker-influenced memory, yielding corrupted statistics, a fault/crash (denial of service), or potential limited memory corruption.

The vulnerable Neighbor Advertisement path is reachable by any unauthenticated on-link node simply by sending ICMPv6 Neighbor Solicitations to a Zephyr node with native IPv6 enabled (handle_ns_input - net_ipv6_send_na).

Affected from v3.3.0 through v4.4.0; the fix uses the already-available iface argument instead of touching the sent packet. Configurations without per-interface statistics dereference only a global counter and are not affected by the memory-safety aspect.

Executive ViewAI

Why It Matters

Zephyr RTOS-based IoT and edge devices (versions 3.3.0-4.4.0) face potential denial of service from any attacker on the local network segment, impacting device uptime and service continuity. While no public exploit has been identified at time of analysis, the vulnerability's ease of triggering and broad Zephyr deployment footprint create significant risk. Immediate patch deployment is required to protect critical connected systems.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.1%
Top 96% exploitable
Prevalence
Medium
widely-used embedded RTOS, but impact limited to IPv6-enabled device builds
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GitHub VulDB

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 HIGH
CISA KEV No
Public POC No
EPSS 0.1%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.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
Scheduled
Exploitation
None
System Exposure· derived
Controlled
Automatable
No
Human Impact
High
Technical Impact
Partial

Priority Score

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

Attack Technique

A buffer overflow occurs when a program writes more data to a memory buffer than it was allocated to hold, causing the excess data to spill into adjacent memory regions.

Use-after-free vulnerabilities occur when a program continues to access memory through a pointer after that memory has been deallocated.

Memory corruption occurs when a program writes data beyond the boundaries of allocated memory regions or accesses memory in unintended ways, violating the integrity of the process's address space.

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