CVE-2026-9771
Received Received - Intake

Privilege Escalation in Zephyr RTOS Flash Driver

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

Publication date: 2026-08-17

Last updated on: 2026-08-17

Assigner: Zephyr Project

Description

The flash_copy() system call is verified by z_vrfy_flash_copy() in drivers/flash/flash_util.c. On builds with CONFIG_USERSPACE enabled, this handler is the kernel-side trust boundary for a user-mode caller. Prior to the fix it validated only the output buffer (K_SYSCALL_MEMORY_WRITE) and passed the two struct device * arguments, src_dev and dst_dev, directly into the implementation without any object validation β€” unlike every sibling flash syscall, which guards its device pointer with K_SYSCALL_DRIVER_FLASH. A user-mode thread fully controls the values of src_dev/dst_dev and the contents of its own address space. The implementation z_impl_flash_copy() dereferences these pointers and calls through their driver-API function tables (e.g. api->get_parameters(dst_dev), flash_read(src_dev, ...), flash_write(dst_dev, ...)). By supplying a pointer to a forged struct device whose api table contains attacker-chosen function pointers, an unprivileged thread can cause the kernel to call arbitrary code in supervisor mode; passing any arbitrary or invalid address otherwise yields a kernel crash or out-of-bounds read. The result is a local privilege escalation out of the userspace sandbox (with kernel denial-of-service and information disclosure as lesser outcomes). The fix adds K_SYSCALL_DRIVER_FLASH(src_dev, read) and K_SYSCALL_DRIVER_FLASH(dst_dev, write) to z_vrfy_flash_copy(), which verify each device is a registered flash-driver kernel object the calling thread is permitted to use before any dereference, closing the path completely.

CVSS Scores

EPSS Scores

Probability:
Percentile:

Meta Information

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

Affected Vendors & Products

Showing 5 associated CPEs
Vendor Product Version / Range
zephyrproject zephyr *
zephyrproject zephyr From 4.0.0 (inc) to 4.4.1 (inc)
zephyrproject zephyr 4.3
zephyrproject zephyr 4.4
zephyrproject zephyr 4.5.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.

Attack-Flow Graph

AI Quick Actions

Instant insights powered by AI
Executive Summary

This is a privilege escalation vulnerability in the Zephyr RTOS where the flash_copy() system call lacks proper validation of device pointers. An unprivileged userspace thread can forge a device structure with malicious function pointers, tricking the kernel into executing arbitrary code in supervisor mode during flash read/write operations.

Detection Guidance

This vulnerability affects the Zephyr RTOS flash_copy() system call. Detection requires checking if your Zephyr RTOS version is between 4.0.0 and 4.4.1. Use the command 'west list' or check the version in your project's configuration. If the version falls within this range, the system is potentially vulnerable.

Impact Analysis

This vulnerability allows an attacker to escalate privileges from userspace to kernel mode, potentially gaining full control over the system. It could also lead to kernel crashes (denial of service) or unauthorized access to sensitive information.

Mitigation Strategies

Immediately update Zephyr RTOS to a patched version (4.3.x or 4.4.x with backported fixes) or the upcoming 4.5.0 release. If updating is not possible, apply the patch from the commit 1b1ecdc438092cdd469319a0d51cba6cf82e06f4 to add device validation in z_vrfy_flash_copy().

Chat Assistant

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

EPSS Chart