CVE-2026-10677: Kernel heap memory leak in `z_vrfy_k_poll()` lets an unprivileged user thread exhaust the kernel resource pool

Published Jul 21, 2026
·
Updated

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

2 affected components
Zephyr Linux kernel (Zephyr)>=1.12.0<=4.4.1
zephyrproject zephyr>=1.12.0<=4.4.1

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade Zephyr to a version that resolves this vulnerability.

    Fixed in 4.4.1
  2. Upgrade

    Upgrade Zephyr to a version that resolves this vulnerability.

    Fixed in v1.12.0
  3. 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

Jul 21, 2026
CVE Published
via MITRE·09:30 PM
Data Sourced
via MITRE·09:30 PM
DescriptionSeverityWeakness
Data Sourced
via NVD·10:16 PM
RemedyDescriptionSeverityWeaknessAffected Software

Frequently Asked Questions

1

What is the severity of CVE-2026-10677?

CVE-2026-10677 has a medium severity score of 6.5.

2

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.

3

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.

4

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.

5

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.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203