boxscore/security
CVE · referencelatest edition

Reference page — cumulative record through Wednesday, August 19, 2026 UTC. Reference pages update as the archive grows; only dated daily editions are immutable pages of record.

CVE-2026-10667HIGH
zephyrproject zephyr — SMP use-after-free in Zephyr `CONFIG_USERSPACE` dynamic kernel-object tracking, reachable from unprivileged user threads
  AV  AC  PR  UI  S  C  I  A   CVSS    EPSS   %ile   KEV
   L   H   L   N  C  H  H  H    7.8   .0015    4.9     —
AFFECTED
  Product  Versions  Fixed
  zephyr   1.14.0 –  —
TIMELINE
  Jun 2   Reserved by zephyr
  Jul 12  EXPLOIT PUBLISHED — CVE-2026-10667 (zephyrproject zephyr). Public exploit reference added.
  Jul 12  Published (CNA: zephyr)
CWE-416 · CNA: zephyr · CVSS v3.1 · 2 references · NVD status: Analyzed

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.

Lifecycle

Complete event history — 3 events, chronological
DateEventDetail
June 2, 2026ReservedReserved by zephyr
July 12, 2026EXPLOIT PUBLISHEDEXPLOIT PUBLISHED — CVE-2026-10667 (zephyrproject zephyr). Public exploit reference added.
July 12, 2026PublishedPublished (CNA: zephyr)

Affected

Affected products and packages — 1 row
VendorProduct / PackageEcosystemVersion introducedFixed
zephyrprojectzephyr1.14.0

Weaknesses

CWE-416

References (2)

Related

Authoritative record: CVE-2026-10667 at cve.org

Vendors: zephyrproject

Weaknesses: CWE-416

About this page

This is a reference page, not a dated page of record. It assembles the complete lifecycle of CVE-2026-10667 from the CVE Program record, NVD enrichment, the CISA KEV catalog, EPSS, and OSV advisories. The box score's numbers (CVSS, EPSS, KEV status) are current as of Wednesday, August 19, 2026 UTC and are re-derived as the archive grows; only dated daily editions are immutable pages of record. The authoritative source for this identifier is cve.org.