CVE-2026-10677: Kernel heap memory leak in `z_vrfy_k_poll()` lets an unprivileged user thread exhaust the kernel resource pool
The CONFIGUSERSPACE syscall verifier zvrfykpoll() in kernel/poll.c allocates a kernel-side copy of the user-supplied kpollevent[] via zthreadmalloc() and then validates each event's object handle. Before this fix, validation used KOOPS(KSYSCALLOBJ(...)) inline inside the loop, which kills the calling thread without freeing eventscopy.
A user thread can pass numevents >= 1 with a forged object handle to leak the allocation; because newly spawned user threads inherit the parent's resourcepool (kernel/thread.c), an attacker spawns sacrificial threads to repeat the leak until the shared kernel heap is exhausted. Once depleted, legitimate kernel allocations from that pool (kqueue alloc nodes, kmsgq buffers, future kpoll calls, etc.) fail, causing a system-level denial of service.
The fix replaces each inline KOOPS with a conditional goto oopsfree so the buffer is freed before the thread is killed. Affects Zephyr releases from v1.12.0 (when kpoll was first exposed to user mode) through v4.4.1.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
Zephyrto a version that resolves this vulnerability.Fixed in 4.4.1 - Upgrade
Upgrade
Zephyrto a version that resolves this vulnerability.Fixed in v1.12.0 - Configuration
Apply the code fix in z_vrfy_k_poll() (kernel/poll.c): replace the inline K_OOPS(K_SYSCALL_OBJ(...)) used during per-event validation with a conditional goto oops_free path so the allocated kernel-side buffer (events_copy from z_thread_malloc()) is freed before the calling thread is killed.
Zephyr CONFIG_USERSPACE syscall verifier z_vrfy_k_poll() K_OOPS inline validation behavior inside loop = replace with conditional goto oops_free to free events_copy before killing thread
Event History
Frequently Asked Questions
What is the severity of CVE-2026-10677?
CVE-2026-10677 has a medium severity score of 6.5.
How do I fix CVE-2026-10677?
To fix CVE-2026-10677, ensure you update to the latest version of Zephyr that addresses this vulnerability.
What are the potential impacts of CVE-2026-10677?
CVE-2026-10677 can allow an unprivileged user thread to exhaust the kernel resource pool, leading to possible denial of service.
Who is affected by CVE-2026-10677?
CVE-2026-10677 affects users of the Zephyr Linux kernel who utilize the syscall verifier in their applications.
What is the nature of the vulnerability in CVE-2026-10677?
CVE-2026-10677 is a kernel heap memory leak caused by improper validation of user-supplied event objects.