CVE-2026-10671
Last modified
CVE-2026-10671 is a high-severity vulnerability rated 7.1/10 on the CVSS scale. In Zephyr's kernel pipe implementation, the userspace syscall verifier z_vrfy_k_pipe_init() in kernel/pipe.c used K_SYSCALL_OBJ() (which requires the kernel object to already be initialized) instead of K_SYSCALL_OBJ_NEVER_INIT() (which rejects an already-initialized object). As a result, on CONFIG_USERSPACE builds an unprivileged user thread that has been granted access to a k_pipe object can invoke the k_pipe_init syscall to re-initialize a pipe that is already in use. z_impl_k_pipe_init() unconditionally resets the ring buffer, sets pipe->waiting to 0, and re-initializes both wait queues (z_waitq_init on pipe->data and pipe->space) without waking or accounting for threads currently blocked on the pipe. EPSS estimates a 0.10% chance of exploitation in the next 30 days.
Description
In Zephyr's kernel pipe implementation, the userspace syscall verifier z_vrfy_k_pipe_init() in kernel/pipe.c used K_SYSCALL_OBJ() (which requires the kernel object to already be initialized) instead of K_SYSCALL_OBJ_NEVER_INIT() (which rejects an already-initialized object). As a result, on CONFIG_USERSPACE builds an unprivileged user thread that has been granted access to a k_pipe object can invoke the k_pipe_init syscall to re-initialize a pipe that is already in use. z_impl_k_pipe_init() unconditionally resets the ring buffer, sets pipe->waiting to 0, and re-initializes both wait queues (z_waitq_init on pipe->data and pipe->space) without waking or accounting for threads currently blocked on the pipe. Any thread already pended in k_pipe_read()/k_pipe_write() is left orphaned: still marked pending with pended_on pointing at the cleared wait queue and with stale qnode_dlist links into the (now re-initialized) embedded list head. When such an orphaned waiter is later timed out or woken, the scheduler calls sys_dlist_remove() on its stale node, writing through dangling prev/next pointers into kernel wait-queue/scheduler structures, causing list corruption (an attacker-driven invalid kernel write), lost wakeups, indefinitely blocked threads, and silent data loss. The flaw lets a deprivileged user thread corrupt the state of a kernel object shared with other threads/partitions. The fix switches the verifier to K_SYSCALL_OBJ_NEVER_INIT(), matching the existing k_msgq_init verifier, so a user thread can no longer re-initialize a live pipe. The vulnerable code shipped in v4.1.0 and remained through v4.4.0.
Metrics
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H
Weakness Enumeration
Affected Software
| Vendor | Product | Versions |
|---|---|---|
| Zephyrproject | Zephyr | >= 4.1.0, < 4.5.0 |
References
Timeline
- Published
- Last Modified
- Status
- Analyzed
Frequently Asked Questions
What is CVE-2026-10671?
How severe is CVE-2026-10671?
How do I fix CVE-2026-10671?
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-10665In Zephyr's WireGuard subsystem (subsys/net/lib/wireguard), …7.4
- CVE-2026-10666parse_ipv4() in subsys/net/ip/utils.c (reached via net_ipadd…9.8
- CVE-2026-10667Zephyr's dynamic kernel-object tracking (kernel/userspace/us…7.8
- CVE-2026-10668The Nuvoton NuMaker HSUSBD USB device-controller driver (dri…4.6
- CVE-2026-10669On Xtensa SoCs built with CONFIG_XTENSA_MPU and CONFIG_USERS…7.8
- CVE-2026-10670The CONFIG_USERSPACE verification handler for the k_thread_n…5.5
- CVE-2026-10672subsys/net/lib/lwm2m/lwm2m_pull_context.c copied the firmwar…9.1
- CVE-2026-10673The Zephyr ADIN2111/ADIN1110 10BASE-T1S/T1L Ethernet driver …8.3
- CVE-2026-10674The NXP LPUART serial driver (drivers/serial/uart_mcux_lpuar…5.5
- CVE-2026-10675In Zephyr's Bluetooth Mesh PB-ADV provisioning bearer (subsy…6.5
- CVE-2026-10676Rejected reason: This CVE Record has been rejected by the Ze…
- CVE-2026-10677The CONFIG_USERSPACE syscall verifier z_vrfy_k_poll() in ker…6.5
Are you affected by CVE-2026-10671?
Run a free Strix scan to check your systems for this vulnerability.
Scan your code nowSource: NVD / NIST
