CVE-2026-10667: use-after-free in zephyrproject zephyr
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.
AI Analysis
Technical Summary
Zephyr's dynamic kernel-object tracking maintains a doubly-linked list of kernel objects protected by multiple spinlocks. Iteration over this list uses the SAFE iterator under lists_lock, but removal and freeing of nodes occur under different, disjoint spinlocks (objfree_lock and obj_lock). On SMP systems, this causes a race condition where the iterator may dereference freed memory, resulting in use-after-free. The vulnerability is exploitable by unprivileged user-mode threads via system calls that trigger object allocation, release, and thread permission changes. The defect originated from a 2019 spinlockification commit and affects configurations with SMP, userspace, and dynamic objects enabled. The fix involves removing objfree_lock and serializing all obj_list modifications under lists_lock.
Potential Impact
An unprivileged user thread on a SMP-enabled Zephyr system with userspace and dynamic objects configured can cause kernel memory corruption by exploiting this use-after-free. This may lead to privilege escalation or kernel crashes causing denial of service. The CVSS 3.1 score is 7.8 (high), reflecting high confidentiality, integrity, and availability impacts with local attack vector, high attack complexity, and low privileges required.
Mitigation Recommendations
Patch status is not yet confirmed — check the vendor advisory for current remediation guidance. The described fix removes objfree_lock and serializes all modifications to the kernel object list under lists_lock. Until an official fix is available, users should avoid running vulnerable configurations (CONFIG_SMP+CONFIG_USERSPACE+CONFIG_DYNAMIC_OBJECTS) or restrict unprivileged user thread access. Monitor the Zephyr project for an official patch or update.
CVE-2026-10667: use-after-free in zephyrproject zephyr
Description
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.
CVSS v3.1
Score 7.8high
Affected software
Run on your own infrastructure? Check whether these packages are installed with threat-finder — our free open-source scanner.
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
Zephyr's dynamic kernel-object tracking maintains a doubly-linked list of kernel objects protected by multiple spinlocks. Iteration over this list uses the SAFE iterator under lists_lock, but removal and freeing of nodes occur under different, disjoint spinlocks (objfree_lock and obj_lock). On SMP systems, this causes a race condition where the iterator may dereference freed memory, resulting in use-after-free. The vulnerability is exploitable by unprivileged user-mode threads via system calls that trigger object allocation, release, and thread permission changes. The defect originated from a 2019 spinlockification commit and affects configurations with SMP, userspace, and dynamic objects enabled. The fix involves removing objfree_lock and serializing all obj_list modifications under lists_lock.
Potential Impact
An unprivileged user thread on a SMP-enabled Zephyr system with userspace and dynamic objects configured can cause kernel memory corruption by exploiting this use-after-free. This may lead to privilege escalation or kernel crashes causing denial of service. The CVSS 3.1 score is 7.8 (high), reflecting high confidentiality, integrity, and availability impacts with local attack vector, high attack complexity, and low privileges required.
Mitigation Recommendations
Patch status is not yet confirmed — check the vendor advisory for current remediation guidance. The described fix removes objfree_lock and serializes all modifications to the kernel object list under lists_lock. Until an official fix is available, users should avoid running vulnerable configurations (CONFIG_SMP+CONFIG_USERSPACE+CONFIG_DYNAMIC_OBJECTS) or restrict unprivileged user thread access. Monitor the Zephyr project for an official patch or update.
Technical Details
- Data Version
- 5.2
- Assigner Short Name
- zephyr
- Date Reserved
- 2026-06-02T15:25:29.239Z
- Cvss Version
- 3.1
- State
- PUBLISHED
- Remediation Level
- null
Threat ID: 6a54991068715ace436e94e5
Added to database: 07/13/2026, 07:51:44 UTC
Last enriched: 07/20/2026, 19:10:56 UTC
Last updated: 08/27/2026, 22:52:08 UTC
Views: 91
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.