CVE-2026-19569
Last modified
CVE-2026-19569 is a high-severity vulnerability rated 8.8/10 on the CVSS scale. dynamic_object_create() in kernel/userspace/userspace.c computed the backing allocation for a dynamically allocated kernel object as obj_size_get(otype) + size, and for thread stack elements as STACK_ELEMENT_DATA_SIZE(size) (a round-up plus fixed overhead), without checking either expression for unsigned wrap-around. A size close to SIZE_MAX makes the computed total wrap to a very small value, so the heap chunk handed out is a few bytes while the object descriptor is still tagged with the full requested type and registered in the kernel object table. The size argument reaches that arithmetic directly from user mode. EPSS estimates a 0.12% chance of exploitation in the next 30 days.
Description
dynamic_object_create() in kernel/userspace/userspace.c computed the backing allocation for a dynamically allocated kernel object as obj_size_get(otype) + size, and for thread stack elements as STACK_ELEMENT_DATA_SIZE(size) (a round-up plus fixed overhead), without checking either expression for unsigned wrap-around. A size close to SIZE_MAX makes the computed total wrap to a very small value, so the heap chunk handed out is a few bytes while the object descriptor is still tagged with the full requested type and registered in the kernel object table. The size argument reaches that arithmetic directly from user mode. k_object_alloc_size() is declared __syscall in include/zephyr/sys/kobject.h, its verifier z_vrfy_k_object_alloc_size() in kernel/userspace/userspace_handler.c is a bare pass-through, and z_object_alloc() only range-checks otype — nothing bounds size. The stack-element branch is additionally reachable through the k_thread_stack_alloc() syscall via kernel/dynamic.c. Because subsequent kernel-object validation checks only the object's type and initialization state, the undersized handle passes K_SYSCALL_OBJ_INIT()/K_SYSCALL_OBJ_NEVER_INIT(), and the matching init syscall (for example k_mutex_init(), k_sem_init(), or k_thread_create()) then writes a complete object over the truncated allocation. An unprivileged user-mode thread can therefore trigger a supervisor-mode out-of-bounds write into the kernel resource-pool heap, of a size and content it substantially controls, corrupting sys_heap chunk metadata and adjacent kernel objects. Under CONFIG_GEN_PRIV_STACKS the thread-stack branch additionally stores an attacker-influenced wild pointer as a user thread's privileged stack base. The practical result is escape from the CONFIG_USERSPACE sandbox — kernel-level code execution or at minimum kernel memory corruption and system compromise. Exploitation requires CONFIG_USERSPACE together with CONFIG_DYNAMIC_OBJECTS (also selected by CONFIG_DYNAMIC_THREAD under userspace), and a calling thread with an assigned resource pool. The fix rejects both overflowing computations and frees the partially built descriptor.
Metrics
Weakness Enumeration
Affected Software
Source: CNA advisory (CVE.org). NVD analysis pending.
| Vendor | Product | Versions |
|---|---|---|
| zephyrproject | zephyr | >= 3.5.0, <= 4.4.2 |
References
Timeline
- Published
- Last Modified
- Status
- Awaiting Analysis
Frequently Asked Questions
What is CVE-2026-19569?
How severe is CVE-2026-19569?
How do I fix CVE-2026-19569?
How Strix Helps
- How Strix found a critical auth bypass in etcdStrix autonomously discovered a critical authentication bypass in etcd, later designated CVE-2026-33413.
- Autonomous PentestingAI agents that find and validate exploitable vulnerabilities like this one across your applications.
- PR ReviewsPentest every pull request so vulnerable code is caught before it ships to production.
- AI Penetration TestingHow AI-driven penetration testing continuously covers your attack surface.
Related CVEs from 2026
- CVE-2026-19561Rejected reason: This CVE ID has been rejected or withdrawn …
- CVE-2026-19562Rejected reason: This CVE ID has been rejected or withdrawn …
- CVE-2026-19563Rejected reason: This CVE ID has been rejected or withdrawn …
- CVE-2026-19565Apache::AppSamurai::Util versions through 1.01 for Perl gene…3.7
- CVE-2026-19566Net::CIDR::Set versions before 0.23 for Perl allow memory ex…7.5
- CVE-2026-19568A maliciously crafted SVG file, when parsed through Autodesk…7.8
- CVE-2026-19570The LE Audio Broadcast Sink in subsys/bluetooth/audio/bap_br…8.8
- CVE-2026-19571The ITE IT8xxx2 SHI host-command backend (subsys/mgmt/ec_hos…6.7
- CVE-2026-19572A security vulnerability has been identified in FlexNet Publ…9.3
- CVE-2026-19573The Affiliate Super Assistent plugin for WordPress is vulner…7.2
- CVE-2026-19574The ARM64 MMU back-end allocated address space identifiers (…7
- CVE-2026-19575The user-mode verification handler for the device_deinit() s…7.8
Are you affected by CVE-2026-19569?
Run a free Strix scan to check your systems for this vulnerability.
Scan your code nowSource: NVD / NIST
