Skip to main content

Zephyr RTOS CVE-2026-10655

| EUVDEUVD-2026-40370 MEDIUM
Use After Free (CWE-416)
2026-06-30 zephyr
5.9
CVSS 3.1 · NVD
View

Attack ChainAIDerived

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

  1. Access
    Attacker suppresses UDP port 123 NTP responses
  2. Delivery
    SNTP timeout fires on system workqueue
  3. Exploit
    sntp_close_async frees net_context from workqueue thread
  4. Execution
    Socket-service poll thread dereferences freed net_context k_poll_event node
  5. Persist
    Use-after-free triggers kernel poll structure corruption
  6. Impact
    Networking thread crashes (DoS) or memory corruption on context reallocation

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

The vulnerable code path is reached only when the Zephyr SNTP client is compiled in and active (subsys/net/lib/config/init_clock_sntp.c with CONFIG_NET_CONFIG_CLOCK_SNTP_INIT enabled). The race specifically requires that the SNTP timeout handler fires - meaning the configured NTP server does not respond within the timeout window - which can be engineered by any attacker able to drop or delay UDP port 123 traffic on the path between the device and its NTP server. The socket-service poll thread must be concurrently blocked in k_poll on the same socket file descriptor, which is the normal steady state during SNTP synchronization. Periodic resync via NET_CONFIG_SNTP_INIT_RESYNC creates repeated, scheduled exploitation windows. Exploitation is limited to Zephyr v4.2.0-v4.4.0 specifically; the CVSS vector confirms no authentication is required (PR:N) and no user interaction is needed (UI:N), but the race-condition timing requirement (AC:H) means exploitation is not trivially reliable on first attempt. There is no known exploitation of this issue from configuration requiring local access; it is a pure network-path condition.

Impact

The NVD-assigned CVSS 3.1 score of 6.5 (AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:H) correctly captures the principal risk signals: the attack is network-reachable with no required privileges or user interaction, but the High Attack Complexity (AC:H) reflects the race-condition timing requirement. No EPSS score was provided in the intelligence data; given the absence of a public exploit and no CISA KEV listing, real-world exploitation probability at this moment is likely low-to-moderate despite the network vector. The Integrity:Low metric accounts for the speculative but technically plausible memory-corruption scenario if the freed context slot is reused; the primary confirmed impact is availability. The SNTP timeout path is a normal, periodic failure mode rather than an edge case, which raises practical exploitability: an attacker need only suppress UDP port 123 responses (trivial on a network path), and periodic resync (NET_CONFIG_SNTP_INIT_RESYNC) gives repeated windows. Defenders should weigh that SNTP is often considered low-risk infrastructure, but on Zephyr-based embedded devices - where crashing the networking thread may brick connectivity entirely - the operational impact can be severe. EPSS data is absent from available intelligence; exploitation timing assessment is inferred from CVSS vector and description only.

Exploit ScenarioDerived

An attacker positioned on the network path between the Zephyr device and its configured NTP server - or controlling a rogue NTP server - drops or never responds to SNTP UDP packets. After the SNTP timeout expires, the system workqueue invokes sntp_close_async concurrently with the socket-service poll thread blocking in k_poll on the same socket, triggering the use-after-free race; repeated periodic resyncs (NET_CONFIG_SNTP_INIT_RESYNC) give the attacker recurring exploitation windows. The most reliable outcome is a networking thread crash and loss of connectivity on the embedded device; on faster pool reallocation paths, memory corruption affecting adjacent net_context users is also possible.

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 – Jun 30, 2026

Use-after-free in Zephyr's asynchronous SNTP client (sntp_close_async, v4.2.0-v4.4.0) can be triggered remotely by any network peer or off-path attacker capable of dropping or delaying UDP NTP responses, exploiting a race between the system workqueue thread and the socket-service poll thread. The most probable outcome is a crash of the networking subsystem thread (denial of service); where the freed net_context pool slot is rapidly reallocated, memory corruption is possible. The vulnerability is on the normal SNTP timeout path, making it reliably and periodically triggerable when NET_CONFIG_SNTP_INIT_RESYNC is enabled. No public exploit code and no CISA KEV listing have been identified at time of analysis.

RemediationAI

Upstream fix available via GitHub commit ef47bdf328b4206ac3b3922ec09184f7a6f7412a in the zephyr-project-rtos/zephyr repository; a tagged patched release version has not been independently confirmed from the available references - consumers should verify with the vendor advisory at https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-34wr-cg29-c4mw. Projects integrating Zephyr as a submodule or West module should update to a commit at or after ef47bdf. As a compensating control where patching is not immediately possible, disabling NET_CONFIG_SNTP_INIT_RESYNC eliminates the periodic resync trigger and reduces the attack surface to initial clock synchronization only, at the cost of losing automatic clock correction over time. Additionally, restricting outbound UDP port 123 to trusted NTP servers via firewall or Zephyr's packet filter (where supported) reduces the off-path attacker's ability to inject forged no-response conditions, though an on-path adversary can still drop packets. Disabling the CONFIG_NET_CONFIG_NEED_IPV4 or CONFIG_SNTP subsystem entirely if SNTP is non-essential eliminates the vulnerable code path entirely.

Affected VersionsENISA

Zephyr 4.2.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

Zephyr RTOS (cpe:2.3:a:zephyrproject:zephyr:*:*:*:*:*:*:*:*) implements an asynchronous SNTP client in subsys/net/lib/sntp/sntp.c. The socket-service architecture relies on a dedicated poll thread that calls zvfs_poll on registered UDP socket file descriptors; internally, zsock_poll_prepare_ctx installs a k_poll_event node whose pointer targets the net_context object's receive queue (&ctx->recv_q). Net contexts are allocated from a bounded fixed pool (CONFIG_NET_MAX_CONTEXTS) and are reused after close. The root cause is CWE-416 (Use After Free): sntp_close_async, when invoked from the system workqueue (the SNTP timeout handler path in subsys/net/lib/config/init_clock_sntp.c), closes and releases the UDP socket's net_context without acquiring any lock or reference count on the poll thread's k_poll_event node. The poll thread can therefore dereference the now-freed - and potentially reallocated - net_context slot, producing object confusion of kernel poll structures. The fix serializes the close by deferring it to the socket-service thread itself via net_socket_service_close (NET_SOCKET_SERVICE_CLOSE_SOCKETS), ensuring the closing and polling operations are always performed by the same thread.

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

Network-reachable via UDP NTP suppression with no privileges; AC:H for race-condition timing; A:H for networking thread crash; I:L for speculative memory corruption on context reuse.

3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:H
4.0 AV:N/AC:H/AT:P/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
Network
Attack Complexity
High
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
High

Lifecycle Timeline

1
CVSS changed
Jul 06, 2026 - 19:52 NVD
6.5 (MEDIUM) 5.9 (MEDIUM)

DescriptionNVD

The asynchronous SNTP client in Zephyr (subsys/net/lib/sntp/sntp.c, sntp_close_async) closed the UDP socket file descriptor directly from the calling thread immediately after detaching it from the network socket service, without synchronizing with the socket-service poll thread.

The socket service thread polls each socket via zvfs_poll, which (in zsock_poll_prepare_ctx) registers a k_poll_event pointing into the socket's net_context (&ctx->recv_q) and then blocks in k_poll without holding a reference or lock. net_context objects are allocated from a fixed pool (contexts[CONFIG_NET_MAX_CONTEXTS]) and reused after close.

When sntp_close_async is invoked from a different thread than the poll thread (in the in-tree consumer subsys/net/lib/config/init_clock_sntp.c, the SNTP timeout handler runs on the system workqueue while the socket service thread is blocked in poll on the same fd), the close frees and may reuse the net_context while the poll thread still has a poller node linked into the freed object, resulting in a use-after-free / object confusion of kernel poll structures.

The SNTP timeout path is the normal no-response failure mode, so a network peer or off-path attacker who drops or delays the SNTP/NTP response can drive the racing close repeatedly (and periodically with NET_CONFIG_SNTP_INIT_RESYNC). The most likely consequence is a crash of the networking thread (denial of service), with potential memory corruption when the freed context slot is reallocated.

The fix defers the close to the socket service thread itself via net_socket_service_close (NET_SOCKET_SERVICE_CLOSE_SOCKETS), so the same thread that polls performs the close, eliminating the race. Affected releases: v4.2.0 through v4.4.0.

Threat Intelligence Overview

EPSS Score
0.2%
Top 85% exploitable
Prevalence
Low
embedded RTOS for IoT, niche deployment outside specialized devices
Social Media
1
Sightings
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
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

30
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +30
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