CVE-2026-10681
Received Received - Intake

Thread Index Race Condition in Zephyr RTOS

Vulnerability report for CVE-2026-10681, including description, CVSS score, EPSS score, affected products, exploitability, helpful resources, and attack-flow context.

Publication date: 2026-07-25

Last updated on: 2026-07-25

Assigner: Zephyr Project

Description

In Zephyr's userspace dynamic-objects subsystem, thread_idx_alloc() in kernel/userspace/userspace.c allocated a new thread permission index from the global _thread_idx_map[] bitmap without holding lists_lock. On SMP systems, two user-mode threads invoking the k_object_alloc(K_OBJ_THREAD) syscall concurrently can both observe the same low free bit, perform the same non-atomic RMW to clear it, and return the identical tidx. The two newly created K_OBJ_THREAD objects are then assigned the same thread_id, so the two user threads alias a single bit position in every kernel object's perms[] bitfield: any subsequent grant of access on a kernel object to one thread is implicitly a grant to the other, defeating userspace ACL isolation. A secondary lost-update window between the unlocked &=~BIT() in alloc and the locked |= BIT() in thread_idx_free() can also leak entries from the thread-index pool. The defect is reachable from any user-mode thread via the unrestricted __syscall k_object_alloc and is gated on CONFIG_USERSPACE, CONFIG_DYNAMIC_OBJECTS, and CONFIG_SMP. The flaw was introduced when the per-thread permission index was added in 2018 and is present in every release up to and including v4.4.0. Fixed by holding lists_lock across the bitmap RMW and the permissions clear (and inlining the obj_list traversal that previously took the lock itself).

CVSS Scores

EPSS Scores

Probability:
Percentile:

Meta Information

Published
2026-07-25
Last Modified
2026-07-25
Generated
2026-07-25
AI Q&A
2026-07-25
EPSS Evaluated
N/A
NVD
EUVD

Affected Vendors & Products

Showing 1 associated CPE
Vendor Product Version / Range
zephyr_project zephyr to 4.4.0 (inc)

Helpful Resources

Exploitability

CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-362 The product contains a concurrent code sequence that requires temporary, exclusive access to a shared resource, but a timing window exists in which the shared resource can be modified by another code sequence operating concurrently.

Attack-Flow Graph

AI Quick Actions

Instant insights powered by AI
Executive Summary

This vulnerability in Zephyr RTOS's userspace dynamic-objects subsystem allows two user-mode threads to simultaneously allocate the same thread permission index due to a race condition in the thread_idx_alloc() function. This happens because the global _thread_idx_map[] bitmap is accessed without proper locking, causing both threads to see the same free bit and clear it non-atomically. The result is two threads sharing the same thread_id, which breaks userspace ACL isolation by allowing one thread to access resources granted to the other.

Detection Guidance

This vulnerability is specific to Zephyr RTOS systems with CONFIG_USERSPACE, CONFIG_DYNAMIC_OBJECTS, and CONFIG_SMP enabled. Detection requires checking Zephyr kernel configuration and examining thread permission index allocation patterns. No standard network commands apply as this is a local kernel flaw.

Impact Analysis

This flaw can lead to unauthorized access to kernel objects or other threads' resources due to the broken ACL isolation. An attacker could exploit this to gain elevated privileges or access sensitive data by manipulating thread permissions. Systems relying on Zephyr's userspace isolation features are particularly at risk if CONFIG_USERSPACE, CONFIG_DYNAMIC_OBJECTS, and CONFIG_SMP are enabled.

Compliance Impact

This vulnerability could lead to unauthorized access to sensitive data due to compromised userspace ACL isolation, potentially violating GDPR's data protection principles and HIPAA's access control requirements. The flaw allows two threads to share the same thread ID, enabling unintended privilege escalation and data exposure.

Mitigation Strategies

Apply the official Zephyr patch that adds list_lock protection around bitmap operations. Disable CONFIG_USERSPACE if not required. Upgrade to Zephyr v4.4.1 or later. Monitor for duplicate thread IDs as an indicator of exploitation.

Chat Assistant

Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-10681. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70

EPSS Chart