CVE-2026-16511
Awaiting Analysis Awaiting Analysis - Queue

RTIO Syscall Pointer Validation Flaw in Zephyr RTOS

Vulnerability report for CVE-2026-16511, including description, CVSS score, EPSS score, affected products, exploitability, helpful resources, and attack-flow context.

Publication date: 2026-11-04

Last updated on: 2026-11-04

Assigner: Zephyr Project

Description

Two RTIO syscall verifiers, in subsys/rtio/rtio_syscalls.c (subsys/rtio/rtio_handlers.c before v4.3.0), did not validate user-supplied pointers before the kernel wrote through them. z_vrfy_rtio_sqe_cancel() performed no validation at all. It passed the caller's struct rtio_sqe pointer straight to z_impl_rtio_sqe_cancel(), which converts it with CONTAINER_OF to a struct rtio_iodev_sqe, ORs RTIO_SQE_CANCELED (BIT(3)) into its 16-bit flags field in supervisor mode, then loads its next pointer and repeats until that pointer is NULL. The syscall takes no RTIO context argument, so it needs no object grant: any user-mode thread on a CONFIG_USERSPACE build can set that bit in a 16-bit word at an address of its choosing in kernel memory, and the kernel continues the write along whatever pointer chain it finds at the corresponding offset. Setting chosen bits in kernel data structures, such as object permission or thread state fields, can be used to escalate privilege from user mode. z_vrfy_rtio_sqe_copy_in_get_handles() validated its RTIO context and the input SQE array, but only NULL-checked the handle out-parameter before writing a kernel SQE pointer through it, with no K_SYSCALL_MEMORY_WRITE check. A user thread that holds a granted RTIO context can therefore make the kernel store a pointer value at an arbitrary address. The fixes validate the handle out-parameter as writable, bound the cancel handle to real submission-pool storage, and require permission on the RTIO context that owns the matching pool. Without that last check a bounded handle still let any user thread cancel submissions belonging to other contexts, silently aborting their I/O. Systems built without CONFIG_USERSPACE or without CONFIG_RTIO are unaffected.

CVSS Scores

EPSS Scores

Probability:
Percentile:

Meta Information

Published
2026-11-04
Last Modified
2026-11-04
Generated
2026-11-04
AI Q&A
2026-11-04
EPSS Evaluated
N/A
NVD
EUVD

Affected Vendors & Products

Showing 2 associated CPEs
Vendor Product Version / Range
zephyrproject zephyr 3.4.0
zephyrproject zephyr 4.4.0

Helpful Resources

Exploitability

CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-862 The product does not perform an authorization check when an actor attempts to access a resource or perform an action.
CWE-822 The product obtains a value from an untrusted source, converts this value to a pointer, and dereferences the resulting pointer.
CWE-787 The product writes data past the end, or before the beginning, of the intended buffer.

Attack-Flow Graph

AI Quick Actions

Instant insights powered by AI
Executive Summary

This vulnerability involves two unvalidated user pointers in the RTIO syscall verifiers of the Zephyr RTOS. The first issue is in z_vrfy_rtio_sqe_cancel(), which allows a user-mode thread to write a fixed bit pattern to an attacker-chosen memory address in kernel memory without validation. The second issue is in z_vrfy_rtio_sqe_copy_in_get_handles(), which writes a kernel pointer without validating memory write permissions.

Detection Guidance

Detecting this vulnerability requires checking Zephyr RTOS versions and syscall verifier implementations. Inspect the kernel for unpatched RTIO syscall handlers in subsys/rtio/rtio_syscalls.c or rtio_handlers.c. Verify if z_vrfy_rtio_sqe_cancel() and z_vrfy_rtio_sqe_copy_in_get_handles() perform pointer validation. Use commands like 'grep -r "z_vrfy_rtio_sqe_cancel" /path/to/zephyr' to locate the functions.

Impact Analysis

This vulnerability can allow a malicious user to escalate privileges from user mode to kernel mode by writing to kernel memory. It can also enable arbitrary kernel writes, potentially leading to system compromise or denial of service.

Mitigation Strategies

Apply the official patches from Zephyr RTOS commits (e.g., 95c355c4, b1092a0a, 3f244c17) to validate user pointers and enforce permissions. Ensure CONFIG_USERSPACE and CONFIG_RTIO are properly configured. If patches are unavailable, disable RTIO syscalls or restrict user-mode access to kernel memory writes.

Chat Assistant

Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-16511. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70

EPSS Chart

Security Radar

News mentioning this vulnerability
Loading related security news...