CVE-2026-10669
Awaiting Analysis Awaiting Analysis - Queue

Buffer Overflow Validation Bypass in Zephyr RTOS

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

Publication date: 2026-07-14

Last updated on: 2026-07-14

Assigner: Zephyr Project

Description

On Xtensa SoCs built with CONFIG_XTENSA_MPU and CONFIG_USERSPACE, arch_buffer_validate() in arch/xtensa/core/mpu.c β€” the architecture hook that verifies a user-mode-supplied buffer is accessible to the calling user thread with the requested permission β€” defaulted its return value to 0 (access permitted) and only set a denial result inside its per-MPU-region probe loop. When the rounded extent of the buffer wraps the 32-bit address space (size + alignment offset near SIZE_MAX, or ROUND_UP(size + offset) overflowing to 0), the loop executes zero iterations and the function returns 0 = permitted without probing any MPU region. The syscall-layer pre-checks (K_SYSCALL_MEMORY_SIZE_CHECK / Z_DETECT_POINTER_OVERFLOW) only catch a raw addr+size wrap and do not cover the ROUND_UP-induced wrap, and the string path (arch_user_string_nlen -> arch_buffer_validate) has no syscall-layer guard at all. An unprivileged user-mode thread can therefore pass a crafted (addr, size) to any syscall that validates user buffers via k_usermode_from_copy/to_copy or k_usermode_string_copy and have validation succeed for memory it must not access; the kernel then reads from (disclosure) or, with write=1, writes to (corruption) attacker-chosen kernel or other-partition memory on the thread's behalf, enabling information disclosure, memory corruption, privilege escalation, and denial of service. Affected from v3.7.0 (when Xtensa MPU userspace support was added) through v4.4.0. The fix changes the default to -EINVAL (deny by default), adds an explicit size_add_overflow check, and sets the success value only after the full range has been validated.

CVSS Scores

EPSS Scores

Probability:
Percentile:

Meta Information

Published
2026-07-14
Last Modified
2026-07-14
Generated
2026-08-04
AI Q&A
2026-07-14
EPSS Evaluated
2026-08-02
NVD
EUVD

Affected Vendors & Products

Showing 1 associated CPE
Vendor Product Version / Range
zephyrproject zephyr From 3.7.0 (inc) to 4.4.0 (inc)

Helpful Resources

Exploitability

CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
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 affects the Zephyr RTOS on Xtensa SoCs with Memory Protection Unit (MPU) and userspace support enabled. The issue is in the `arch_buffer_validate()` function, which checks if a user-supplied buffer is accessible with the requested permissions.

The function incorrectly defaults its return value to 0 (meaning access is permitted) and only denies access if the buffer fails validation during its loop. When a buffer's size and alignment offset cause an overflow in the 32-bit address space (e.g., when ROUND_UP(size + offset) wraps around to 0), the loop executes zero times. This means the function returns 0 without checking any MPU regions, allowing unauthorized access.

An unprivileged user thread can exploit this by crafting specific (address, size) pairs to bypass validation in syscalls that use functions like `k_usermode_from_copy`, `k_usermode_to_copy`, or `k_usermode_string_copy`. This can lead to the kernel reading from or writing to memory it should not access.

  • The vulnerability was introduced in Zephyr v3.7.0 and affects versions up to v4.4.0.
  • The fix changes the default return value to -EINVAL (deny by default), adds an explicit overflow check, and only permits access after full validation.
Detection Guidance

Detecting this vulnerability requires checking if your system is running an affected version of the Zephyr RTOS on Xtensa SoCs with CONFIG_XTENSA_MPU and CONFIG_USERSPACE enabled. Since this is a kernel-level vulnerability, detection involves verifying the software version and configuration rather than network-based scanning.

  • Check the Zephyr RTOS version: If your system is running Zephyr v3.7.0 through v4.4.0, it may be vulnerable. You can verify the version by inspecting the firmware or using Zephyr's version reporting mechanisms if available.
  • Verify the configuration: Ensure that CONFIG_XTENSA_MPU and CONFIG_USERSPACE are enabled in your build configuration. This can be checked in the Zephyr build configuration file (e.g., prj.conf or Kconfig).
  • Review syscall usage: The vulnerability is triggered via syscalls that use k_usermode_from_copy, k_usermode_to_copy, or k_usermode_string_copy. Auditing the codebase for these functions can help identify potential exposure.

There are no specific network commands to detect this vulnerability, as it is a local privilege escalation issue. Detection relies on version and configuration checks.

Impact Analysis

This vulnerability can have serious consequences if exploited on a system running the affected Zephyr RTOS versions on Xtensa SoCs with MPU and userspace support.

  • Information Disclosure: An attacker could read sensitive data from kernel memory or other protected memory regions, exposing confidential information.
  • Memory Corruption: The attacker could write to unauthorized memory locations, potentially corrupting critical data structures or code execution paths.
  • Privilege Escalation: By manipulating memory, an unprivileged user thread could gain elevated privileges, taking control of the system.
  • Denial of Service: The system could crash or become unresponsive due to memory corruption or unauthorized access, disrupting operations.

These impacts are particularly severe in embedded systems where Zephyr RTOS is commonly used, such as IoT devices, industrial control systems, or medical devices.

Compliance Impact

This vulnerability can affect compliance with several standards and regulations, depending on the system's use case and the data it handles.

  • GDPR (General Data Protection Regulation): If the affected system processes personal data of EU citizens, unauthorized access or disclosure of this data due to the vulnerability could violate GDPR requirements. GDPR mandates strict protection of personal data, and breaches must be reported within 72 hours. Failure to comply can result in significant fines (up to 4% of global revenue or €20 million, whichever is higher).
  • HIPAA (Health Insurance Portability and Accountability Act): For systems handling protected health information (PHI) in the U.S., this vulnerability could lead to unauthorized access or disclosure of PHI. HIPAA requires safeguards to protect PHI, and breaches can result in penalties ranging from $100 to $50,000 per violation, with a maximum of $1.5 million per year for each violation.
  • Other Standards: The vulnerability may also impact compliance with standards like ISO 27001 (information security management), NIST SP 800-53 (security controls for federal systems), or industry-specific regulations (e.g., PCI DSS for payment systems). These standards require robust security measures to prevent unauthorized access and data breaches.

Organizations using affected versions of Zephyr RTOS should apply the fix promptly to mitigate risks and maintain compliance with applicable regulations.

Mitigation Strategies

To mitigate this vulnerability, follow these immediate steps:

  • Upgrade to a patched version of Zephyr RTOS: The vulnerability was fixed in v4.5.0 and backported to v4.4.x, v4.3.x, and v3.7.x branches. Upgrade to the latest patched version as soon as possible.
  • If upgrading is not immediately possible, apply the patch manually: The fix involves modifying the arch_buffer_validate() function in arch/xtensa/core/mpu.c to change the default return value to -EINVAL, add an overflow check, and ensure success is only returned after full validation. The patch can be found in Resource 1.
  • Disable userspace support if not required: If your application does not need CONFIG_USERSPACE, disable it in your build configuration to reduce the attack surface.
  • Monitor for suspicious activity: Since this vulnerability can lead to privilege escalation or memory corruption, monitor system logs for unusual behavior, such as unauthorized memory access or unexpected syscall activity.

After applying the patch or upgrading, verify that the fix is correctly implemented by testing syscalls that use the affected validation functions.

Chat Assistant

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

EPSS Chart