Skip to main content

Zephyr RTOS CVE-2026-9728

| EUVDEUVD-2026-64897 MEDIUM
Time-of-check Time-of-use (TOCTOU) Race Condition (CWE-367)
2026-08-24 zephyr
6.4
CVSS 3.1 · Vendor: zephyr
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Recon
    Obtain unprivileged thread on CONFIG_USERSPACE Zephyr system
  2. Delivery
    Spawn racing thread in same address space
  3. Exploit
    Invoke mbox_send() with valid msg struct
  4. Install
    Racing thread overwrites msg->data with target kernel address
  5. C2
    Verifier check passes before overwrite is caught
  6. Execute
    Driver dereferences kernel address in supervisor context
  7. Impact
    Kernel memory bytes forwarded to mailbox peer endpoint

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture TOCTOU prevention
Exploitation Conditions

CONFIG_USERSPACE must be explicitly enabled in the Zephyr build configuration - this is not universally default and must be intentionally configured by the system integrator. The attacker must hold an unprivileged userspace thread on the target system (PR:L per CVSS); fully unauthenticated remote exploitation is not possible. A second thread sharing the caller's address space is required to perform the concurrent overwrite - single-threaded environments or environments where all threads are mutually trusted are not exploitable. The race window is narrow and timing-dependent (AC:H), meaning exploitation requires repeated attempts and precise scheduling; it is not reliably automatable in a single attempt. The vulnerability is specific to the mbox_send() syscall path and manifests only when a mailbox driver (such as the NXP mailbox driver) dereferences msg->data in supervisor context. Exploitation is strictly local - no network vector exists. Confidentiality impact requires knowledge or guessing of a valid mapped kernel address; targeting an invalid/unmapped address instead causes a faulting kernel read (DoS) rather than memory disclosure.

Impact

The CVSS 3.1 vector AV:L/AC:H/PR:L/UI:N/S:C/C:H/I:N/A:L is well-calibrated to the actual threat: local-only access (AV:L) and high complexity (AC:H) reflect the requirement to win a precise race condition between two threads, substantially lowering practical exploitability compared to network-exploitable or trivially triggered flaws. PR:L confirms an unprivileged-but-present userspace thread is required, not a fully unauthenticated remote attacker. The scope change (S:C) correctly captures the userspace-to-supervisor boundary crossing. EPSS data was not included in the provided intelligence, so probabilistic exploitation likelihood cannot be quantified from available inputs. No CISA KEV listing is present, and no public POC has been identified, meaning active exploitation is not confirmed. The C:H impact is real - a successful race yields arbitrary kernel memory reads - but the AC:H constraint means exploitation is not trivially automatable. SSVC signals (no active exploitation, patch available) suggest a moderate urgency tier appropriate for scheduled patching cycles rather than emergency response for most operators.

Exploit ScenarioDerived

An attacker with access to an unprivileged userspace thread on a Zephyr CONFIG_USERSPACE build spawns a second thread sharing the same address space and begins spinning to overwrite msg->data with a target kernel address (e.g., a known kernel data structure) immediately after the mbox_send() syscall is entered. When the race is won between the verifier's K_SYSCALL_MEMORY_READ check and the driver's subsequent memcpy, the driver reads bytes from the attacker-controlled supervisor address in kernel context and forwards them to the mailbox peer endpoint, leaking kernel memory contents. No public POC is identified at time of analysis; the timing window is narrow, requiring repeated attempts to win reliably.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.1% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Aug 24, 2026

Kernel memory disclosure and denial-of-service in Zephyr RTOS's mbox_send() syscall verifier stem from a time-of-check/time-of-use (TOCTOU) race in z_vrfy_mbox_send() (drivers/mbox/mbox_handlers.c), present in versions 3.0.0 through 4.4.2 on CONFIG_USERSPACE builds. An unprivileged userspace thread can race a second thread in the same address space to replace the validated msg->data pointer with a supervisor-mode address after the bounds check completes, causing the underlying driver to perform a supervisor-context read from an attacker-chosen kernel address. The upstream fix (commit ab35eacc) is confirmed available; no public exploit is identified at time of analysis.

RemediationAI

Upgrade to Zephyr 4.4.2 or later, which incorporates the fix from upstream commit ab35eaccec5976f05c196f176d0c32885754496f; the patch and advisory are available at https://github.com/zephyrproject-rtos/zephyr/commit/ab35eaccec5976f05c196f176d0c32885754496f and https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-47q2-w832-7w67. If immediate upgrade is not feasible, removing CONFIG_USERSPACE from the build configuration eliminates the vulnerable syscall verification path entirely, but this disables all userspace/kernel separation and will break any application logic relying on unprivileged user threads - a significant functional trade-off unsuitable for most deployments using that feature. An alternative compensating control is to restrict the system to a single trusted thread or trusted-only thread model, eliminating the untrusted concurrent-thread precondition; this may not be architecturally feasible in multi-tenant or multi-application Zephyr deployments.

Affected VersionsENISA

Zephyr 3.0.0 <4.4.2

Affected Packages

euvd zephyr fix: 4.4.2

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Zephyr RTOS implements a syscall verification layer (z_vrfy_* functions) that validates userspace pointers before forwarding them to kernel implementations (z_impl_*). In z_vrfy_mbox_send(), the pre-fix code called K_SYSCALL_MEMORY_READ on msg->data and msg->size read directly from the live userspace struct mbox_msg pointer, then passed the original userspace pointer - still writable by any thread sharing that address space - to z_impl_mbox_send(). This classic CWE-367 (TOCTOU) flaw created a race window: a concurrent thread could replace msg->data with a supervisor-mode address between validation and the driver's dereference. The NXP mailbox driver (and potentially other drivers) performs memcpy(&data32, msg->data, msg->size) in supervisor context, reading bytes from the attacker-controlled address. The fix introduced in commit ab35eacc uses k_usermode_from_copy() to snapshot the entire struct mbox_msg onto the kernel stack before validation, then validates and forwards the immutable kernel-side copy. Affected product per CPE: cpe:2.3:a:zephyrproject:zephyr:*:*:*:*:*:*:*:* versions 3.0.0 through less than 4.4.2.

Know when Zephyr gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (zephyr) PRIMARY 6.4 MEDIUM
AV:L/AC:H/PR:L/UI:N/S:C/C:H/I:N/A:L
vuln.today AI 6.4 MEDIUM

Local-only vector (AV:L), race-condition timing requirement (AC:H), and unprivileged-thread prerequisite (PR:L) match the described TOCTOU; scope change (S:C) reflects the userspace-to-supervisor boundary crossing with no integrity impact.

3.1 AV:L/AC:H/PR:L/UI:N/S:C/C:H/I:N/A:L
4.0 AV:L/AC:H/AT:P/PR:L/UI:N/VC:H/VI:N/VA:L/SC:N/SI:N/SA:N

Primary rating from Vendor (zephyr).

CVSS VectorVendor: zephyr

Attack Vector
Local
Attack Complexity
High
Privileges Required
Low
User Interaction
None
Scope
Changed
Confidentiality
High
Integrity
None
Availability
Low

DescriptionCVE.org

The userspace syscall verifier z_vrfy_mbox_send() in drivers/mbox/mbox_handlers.c validated the nested msg->data/msg->size fields by reading them directly out of live userspace memory, and then forwarded the original, still-mutable userspace struct mbox_msg * pointer to z_impl_mbox_send() and the underlying driver. Between the access check and the driver's use of msg->data, the validated pointer could be replaced, leaving a time-of-check/time-of-use window.

On a system built with CONFIG_USERSPACE, any unprivileged userspace thread may invoke the mbox_send() system call. A second thread sharing the caller's address space can race to overwrite msg->data with a supervisor (kernel) address after the verifier's bounds check has passed but before the driver dereferences it. The driver then reads from the attacker-chosen address in supervisor context (for example memcpy(&data32, msg->data, msg->size) in the NXP mailbox driver, whose bytes are subsequently emitted to the peer mailbox endpoint).

The impact is a userspace-to-supervisor access-control bypass: disclosure of kernel memory contents (high confidentiality impact), or, for an invalid/unmapped target address, a faulting kernel read causing denial of service. The fix snapshots the entire struct mbox_msg into a kernel-stack copy with k_usermode_from_copy() and validates and forwards that immutable copy, closing the race.

Threat Intelligence Overview

EPSS Score
0.1%
Top 100% exploitable
Prevalence
Low
embedded RTOS targeting IoT and microcontroller devices, not general enterprise infrastructure
Data Quality
6 sources
Confidence: High

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.1%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Defer
Exploitation
None
System Exposure· derived
Small
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

32
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +32
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

More in Zephyr

View all
CVE-2023-4260 CRITICAL POC
10.0 Sep 27

Potential off-by-one buffer overflow vulnerability in the Zephyr fuse file system. Rated critical severity (CVSS 10.0),

CVE-2026-1678 CRITICAL POC
9.8 Mar 05

An out-of-bounds write in the Zephyr RTOS DNS resolver (dns_unpack_name()) lets a crafted DNS response corrupt memory on

CVE-2023-5055 CRITICAL POC
9.8 Nov 21

Possible variant of CVE-2021-3434 in function le_ecred_reconf_req. Rated critical severity (CVSS 9.8), this vulnerabilit

CVE-2023-4257 CRITICAL POC
9.8 Oct 13

Unchecked user input length in /subsys/net/l2/wifi/wifi_shell.c can cause buffer overflows. Rated critical severity (CVS

CVE-2023-3725 CRITICAL POC
9.8 Oct 06

Potential buffer overflow vulnerability in the Zephyr CAN bus subsystem. Rated critical severity (CVSS 9.8), this vulner

CVE-2021-3323 CRITICAL POC
9.8 Oct 12

Integer Underflow in 6LoWPAN IPHC Header Uncompression in Zephyr. Rated critical severity (CVSS 9.8), this vulnerability

CVE-2021-3625 CRITICAL POC
9.8 Oct 05

Buffer overflow in Zephyr USB DFU DNLOAD. Rated critical severity (CVSS 9.8), this vulnerability is remotely exploitable

CVE-2021-3319 CRITICAL POC
9.8 Oct 05

DOS: Incorrect 802154 Frame Validation for Omitted Source / Dest Addresses. Rated critical severity (CVSS 9.8), this vul

CVE-2018-1000800 CRITICAL POC
9.8 Sep 06

zephyr-rtos version 1.12.0 contains a NULL base pointer reference vulnerability in sys_ring_buf_put(), sys_ring_buf_get(

CVE-2023-4264 CRITICAL POC
9.6 Sep 27

Potential buffer overflow vulnerabilities n the Zephyr Bluetooth subsystem. Rated critical severity (CVSS 9.6), this vul

CVE-2024-1638 CRITICAL POC
9.1 Feb 19

The documentation specifies that the BT_GATT_PERM_READ_LESC and BT_GATT_PERM_WRITE_LESC defines for a Bluetooth characte

CVE-2023-5753 HIGH POC
8.8 Oct 25

Potential buffer overflows in the Bluetooth subsystem due to asserts being disabled in /subsys/bluetooth/host/hci_core.c

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy