Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1359 CNY

100%

CVE-2026-19569— Integer overflow in dynamic kernel object allocation allows user-mode threads to corrupt the kernel heap

Quick assessment

Affected
zephyrproject zephyr
Exploitation
No confirmed in-the-wild exploitation; assess based on exposure
Recommended action
Check the vendor advisory and references for a fixed version. If immediate upgrade is impossible, restrict exposure and increase monitoring.

中的 函数在计算动态分配的内核对象的Backing分配大小时,使用了 ;对于线程栈元素,则使用 (即向上取整并加上固定开销)。然而,该函数未对这些表达式进行无符号整数溢出检查。当 接近 时,计算出的总大小会发生回绕(wrap-around),导致返回一个极小的堆块,而对象描述符仍被标记为完整的请求类型,并注册在内核对象表中。 参数直接来自用户模式,未经充分验证。 在 中被声明为 ,其验证器 (位于 )仅为透传(bare pass-through),而 仅对 进行范围检查,未对 施加任何边界限制。此外,栈元素分支还可

CVSS 8.8 · High
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2026-19569

Vulnerability Information

Have questions about the vulnerability? See if Shenlong's analysis helps!
View Shenlong Deep Dive ↗

Although we use advanced large model technology, its output may still contain inaccurate or outdated information.Shenlong tries to ensure data accuracy, but please verify and judge based on the actual situation.

Vulnerability Title
Integer overflow in dynamic kernel object allocation allows user-mode threads to corrupt the kernel heap
Source: CVE Program / CVE List V5
Vulnerability 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.
Source: CVE Program / CVE List V5
CVSS Information
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
Source: CVE Program / CVE List V5
Vulnerability Type
整数溢出或超界折返
Source: CVE Program / CVE List V5

Affected Products

Vendor Product Affected Versions CPE Subscribe
zephyrproject zephyr 3.5.0 ~ 4.4.2 -

II. Public POCs for CVE-2026-19569

# POC Description Source Link Shenlong Link
AI-Generated POC Premium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2026-19569

请登录查看更多情报信息。

Other References for CVE-2026-19569 (2)

Same Patch Batch · zephyrproject · 2026-10-09 · 5 CVEs total

CVE-2026-19570 8.8 HIGH Out-of-bounds write in LE Audio Broadcast Sink when copying BASE subgroup metadata into th
CVE-2026-19575 7.8 HIGH Type confusion in the device_deinit system call allows user-mode threads to execute arbitr
CVE-2026-19574 7.0 HIGH ARM64 MMU can assign an in-use ASID to a new memory domain, breaking user-mode memory isol
CVE-2026-19571 6.7 MEDIUM Race condition in ITE IT8xxx2 SHI host-command backend lets a second SPI request write an

IV. Related Vulnerabilities

V. Comments for CVE-2026-19569

No comments yet


Leave a comment