Skip to main content

Zephyr RTOS EUVDEUVD-2026-43244

| CVE-2026-10667 HIGH
Use After Free (CWE-416)
2026-07-12 zephyr
7.8
CVSS 3.1 · Vendor: zephyr
View

Attack ChainAIDerived

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

  1. Access
    Run deprivileged user thread on SMP device
  2. Delivery
    Spawn concurrent alloc/release and thread-abort loops
  3. Exploit
    Race iterator against node free in obj_list
  4. Execution
    Iterator dereferences freed dyn_obj node
  5. Persist
    Corrupt kernel object-tracking structures
  6. Impact
    Escalate privileges or crash kernel

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 the target to be built with all three of CONFIG_SMP, CONFIG_USERSPACE, and CONFIG_DYNAMIC_OBJECTS enabled - remove any one and the bug is unreachable. The attacker must already be able to execute a deprivileged user-mode thread on the device and must invoke the relevant system calls: k_object_alloc/k_object_alloc_size and k_object_release (removals via unref_check()) concurrently with k_thread_abort or thread creation (iteration via k_thread_perms_all_clear()/k_thread_perms_inherit()). Limiting factors: it is a local-only attack (AV:L, PR:L - an unprivileged but authenticated on-device thread), success depends on winning a narrow SMP timing window (AC:H) so it is probabilistic rather than deterministic, and single-core or non-dynamic-object builds are entirely immune.

Impact

The CVSS 3.1 vector (AV:L/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:H, base 7.8) is internally consistent with the description: local attack from an on-device user thread, high complexity because success depends on winning a narrow SMP race window, low privileges since the attacker is an already-running deprivileged user thread, and scope change because corruption crosses from userspace into the kernel with full C/I/A impact. Modeling with SSVC: exploitation is 'none' (no KEV, no public POC), the attack is arguably automatable (the race can be hammered in a tight loop) but the technical impact is 'total' given potential kernel privilege escalation. No EPSS score was provided in the input, and there is no KEV listing, so real-world exploitation pressure is currently unproven. The practical priority is moderate: the impact ceiling is severe (kernel compromise), but exploitation requires local code execution as a user thread AND the specific CONFIG_SMP+CONFIG_USERSPACE+CONFIG_DYNAMIC_OBJECTS build combination, which sharply narrows the exposed population. No conflicting signals were detected between the vector and the description.

Exploit ScenarioDerived

An attacker who can run a deprivileged user-mode thread on an SMP Zephyr device (for example, malicious or compromised application code loaded onto the target) spawns two threads that concurrently churn kernel objects - one repeatedly calling k_object_alloc/k_object_release to drive node removal, the other repeatedly triggering thread creation/abort to drive list iteration. By hammering these system calls in a tight loop they eventually win the race so the SAFE iterator dereferences a freed dyn_obj node, corrupting kernel object-tracking structures to escalate privileges or crash the kernel. No public exploit code is identified, and the high attack complexity (AC:H) reflects the timing precision required.

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

AnalysisAIv1 – Jul 12, 2026

Kernel memory corruption in the Zephyr RTOS (versions v1.14.0 through v4.4.0) lets an unprivileged user-mode thread corrupt the kernel's dynamic object-tracking list across the userspace security boundary. The flaw is a use-after-free race (CWE-416) in the obj_list traversal, exploitable only on builds combining CONFIG_SMP, CONFIG_USERSPACE, and CONFIG_DYNAMIC_OBJECTS, and can yield privilege escalation or a kernel crash. No public exploit identified at time of analysis; a vendor patch is available.

RemediationAI

Patch available per vendor advisory: apply the upstream fix in commit fdc42fa256b8c2a7b27790f032d5385f8058c4a9 (https://github.com/zephyrproject-rtos/zephyr/commit/fdc42fa256b8c2a7b27790f032d5385f8058c4a9), which removes objfree_lock and serializes every obj_list modification under lists_lock, holding it across find+remove in k_object_free() and around unref_check() in k_thread_perms_clear(); follow the guidance in advisory GHSA-9x5j-h3rh-x579 and upgrade to the next Zephyr release incorporating this fix. As a temporary compensating control where rebuilding is not immediately possible, disable one of the three required Kconfig options - most practically CONFIG_DYNAMIC_OBJECTS (removing dynamic kernel-object allocation) or CONFIG_SMP (running single-core), either of which closes the race; the trade-off is loss of dynamic object allocation or of multi-core scheduling respectively, which may be unacceptable for the workload. Restricting which untrusted code can run as user-mode threads also reduces exposure but does not remove the defect.

Affected VersionsENISA

Zephyr 1.14.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 is a widely used open-source real-time operating system for resource-constrained embedded and IoT devices. Its userspace subsystem (kernel/userspace/userspace.c) tracks dynamically allocated kernel objects in a doubly-linked list (obj_list). The defect is a classic locking-discipline mismatch: k_object_wordlist_foreach() iterates obj_list under lists_lock using a SAFE iterator that caches the next node, while node unlink+free happens under disjoint spinlocks (objfree_lock in k_object_free(), obj_lock in unref_check()). On SMP, one CPU can k_free() the exact dyn_obj node another CPU has cached as its next pointer, so the iterator dereferences freed memory - the CWE-416 use-after-free. CPE cpe:2.3:a:zephyrproject:zephyr identifies the affected product; the root cause dates to the 2019 spinlockification (commit 8a3d57b6cc6).

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

Local on-device user thread (AV:L, PR:L), success needs winning a narrow SMP race (AC:H), and userspace-to-kernel corruption crosses a trust boundary (S:C) with full kernel C/I/A impact.

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

Primary rating from Vendor (zephyr).

CVSS VectorVendor: zephyr

Attack Vector
Local
Attack Complexity
High
Privileges Required
Low
User Interaction
None
Scope
Changed
Confidentiality
High
Integrity
High
Availability
High

DescriptionCVE.org

Zephyr's dynamic kernel-object tracking (kernel/userspace/userspace.c, formerly kernel/userspace.c) maintains a doubly-linked list (obj_list) of dynamically allocated kernel objects. Iteration over this list in k_object_wordlist_foreach() was performed under lists_lock using the SAFE iterator (which caches the next node), but list removal and freeing of nodes was performed under different, disjoint spinlocks: objfree_lock in k_object_free() and obj_lock in unref_check(). On an SMP system, while one CPU iterated obj_list under lists_lock, another CPU could unlink and k_free() the dyn_obj node that the iterator had cached as its next pointer, causing the iterator to dereference freed kernel memory (use-after-free / dangling list traversal). All of the racing operations are reachable from unprivileged user-mode threads via system calls: k_object_alloc/k_object_alloc_size and k_object_release drive removals through unref_check() (under obj_lock), while k_thread_abort and thread creation drive the iteration through k_thread_perms_all_clear()/k_thread_perms_inherit() (under lists_lock). A deprivileged user thread on a CONFIG_SMP + CONFIG_USERSPACE build can therefore corrupt the kernel's object-tracking structures across the userspace security boundary, yielding kernel memory corruption (potential privilege escalation) or a kernel crash (denial of service). The fix removes objfree_lock and serializes every obj_list modification under lists_lock, including holding it across find+remove in k_object_free() and around unref_check() in k_thread_perms_clear(). Affects CONFIG_SMP+CONFIG_USERSPACE+CONFIG_DYNAMIC_OBJECTS configurations; the defect dates to the 2019 spinlockification (commit 8a3d57b6cc6, first released in v1.14.0) and shipped through v4.4.0.

Executive ViewAI

Why It Matters

Zephyr RTOS versions 1.14.0 through 4.4.0 contain a kernel memory vulnerability enabling local privilege escalation and service outages on affected systems. Organizations using Zephyr for IoT, embedded devices, and real-time control systems face unauthorized administrative access and operational disruption risks without patching. Immediate remediation is critical for production deployments.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.1%
Top 99% exploitable
Prevalence
Medium
popular embedded/IoT RTOS, but SMP+userspace builds are a niche subset
Social Media
3
Sightings
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment CIRCL 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
Poc
System Exposure· derived
Small
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

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

Attack Technique

Privilege escalation occurs when an attacker leverages flaws in access control mechanisms to gain permissions beyond what they were originally granted.

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