Skip to main content

Zephyr RTOS EUVDEUVD-2026-84013

| CVE-2026-17051 MEDIUM
Out-of-bounds Write (CWE-787)
2026-09-21 zephyr
6.0
CVSS 3.1 · Vendor: zephyr
View

Attack ChainAIDerived

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

  1. Access
    Obtain host-side ISH driver or raw BAR access
  2. Delivery
    Write doorbell length field >128 (up to 1023)
  3. Exploit
    Trigger inbound IPM interrupt in ipm_event_dispose()
  4. Execution
    sedi_ipc_read_msg copies past 128-byte .bss buffer
  5. Persist
    Clobber ipm_sedi_context k_sem/k_mutex and adjacent static data
  6. Impact
    Kernel data-structure corruption and crash

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Bounds checking, write limits
MITRE ATT&CK

2 techniques across 2 tactics: Execution, Privilege Escalation

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Requires an intel_ish_5_* (or equivalent SEDI IPM) Zephyr target where an application has registered an IPM receive callback via ipm_register_callback() - the driver's normal mode of use - AND host-side software possessing ISH driver-level or raw BAR access to the device's memory-mapped register window, from which the peer-written doorbell register can be set. Exploitation further depends on a production image built WITHOUT CONFIG_DEBUG, since the underlying HAL sedi_ipc_read_msg() bounds check is a DBG_CHECK that compiles away otherwise. Limiting factors: local attack vector (no network reach), high privilege on the host side (driver/raw BAR access), and the platform-specific SEDI IPM driver being compiled in - this is not remotely reachable and not present in default non-Intel-ISH Zephyr builds.

Impact

This is a moderate, defense-in-depth-relevant flaw rather than an urgent internet-facing emergency. The vendor CVSS 3.1 vector (AV:L/AC:L/PR:H/UI:N/S:U/C:N/I:H/A:H = 6.0) is internally consistent with the description: the doorbell register is reached only through the device's memory-mapped BAR window, so the attacker must already be host-side software with driver-level or raw BAR access (AV:L, PR:H). No EPSS score, no CISA KEV entry, and no public exploit are present in the input - so exploitation status is 'no public exploit identified at time of analysis.' The impact is genuine (I:H/A:H): an interrupt-context out-of-bounds write of up to 895 bytes into .bss that corrupts kernel synchronization primitives, but the description frames the outcome as a 'kernel data-structure corruption and crash primitive' - i.e., a demonstrated DoS/integrity primitive, not confirmed arbitrary code execution, which is why C:N is appropriate. Note one debatable point to verify with the vendor: because the attacker on the host CPU crosses a trust boundary into the separate ISH co-processor running Zephyr, a Scope-changed (S:C) reading is arguable, though impact remains confined to the ISH so S:U is defensible. Overall: real bug, patch available, but the PR:H/AV:L gating and absence of any exploitation signal put it below internet-facing critical issues in priority.

Exploit ScenarioDerived

On an intel_ish_5_* platform where a Zephyr application has registered an IPM receive callback (the driver's normal mode), a host-side actor with ISH driver or raw BAR access writes a doorbell register encoding a payload length larger than 128 (up to the 10-bit maximum of 1023). When the inbound-message interrupt fires, ipm_event_dispose() copies that oversized length into the 128-byte incoming_data_buf, overflowing up to 895 bytes into adjacent static memory and corrupting the k_sem/k_mutex used by the transmit path, crashing or corrupting the ISH kernel. No public exploit code is identified in the provided data.

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 – Sep 21, 2026

An out-of-bounds write of up to 895 bytes into static (.bss) memory can be triggered in Zephyr RTOS's Intel SEDI IPM driver (drivers/ipm/ipm_sedi.c) when the peer processor sets a doorbell payload length larger than the 128-byte incoming_data_buf. The vulnerable path is reachable when an application has registered an IPM receive callback via ipm_register_callback(), the driver's normal mode of use, and requires a local, highly privileged attacker (CVSS PR:H) with host-side ISH driver-level or raw BAR access to the device's memory-mapped register window, plus a production image built without CONFIG_DEBUG so the HAL's DBG_CHECK length guard is compiled away. The result is kernel data-structure corruption and a crash primitive - the overflow clobbers the driver context's k_sem and k_mutex and adjacent static data - but the flaw is platform-specific and locally scoped, so it is a moderate, defense-in-depth-relevant issue rather than an urgent internet-facing emergency; no public exploit identified at time of analysis, and an upstream fix commit is available.

RemediationAI

Upstream fix available (commit 74c7d27925055e8c3c8aef7a9f16cae6a8c64b70, referenced by vendor advisory GHSA-78p3-4gv3-qjh9); apply that commit or update to the Zephyr release that carries it - a patched tagged release version is not independently confirmed from the available data, so verify against the advisory before relying on a version number. The fix adds an explicit 'len <= IPC_DATA_LEN_MAX' guard in ipm_event_dispose(), logs the invalid DRBL value and sends an ack so the peer is not left waiting; no behavioral change is expected for legitimate messages at or below 128 bytes. If the patch cannot be applied immediately, enabling CONFIG_DEBUG keeps the HAL DBG_CHECK bounds check active as a compensating control, at the cost of added debug overhead and log noise in production images. Because the vulnerability is reachable only from host-side software with ISH driver-level or raw BAR access, restricting that access (blocking untrusted or less-privileged host software from mapping the ISH register window, or not registering an IPM receive callback unless the mailbox is actually required) removes the attack path, with the trade-off that it disables normal IPM receive functionality. There is no network-facing mitigation to apply, since the vector is local (AV:L) and requires high privileges (PR:H).

Affected VersionsENISA

Zephyr 3.5.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

The Intel SEDI IPM driver implements an inter-processor mailbox over a shared IPC link: the peer writes a doorbell register, the local side takes an inbound message interrupt, and ipm_event_dispose() extracts the payload length from the doorbell with IPC_HEADER_GET_LENGTH(). That length field is 10 bits wide (IPC_HEADER_LENGTH_MASK 0x03FF) and can therefore encode values up to 1023, while the destination buffer struct ipm_sedi_context.incoming_data_buf is only IPC_DATA_LEN_MAX (128) bytes. The length was passed unchecked to sedi_ipc_read_msg(), whose only guard is a DBG_CHECK that is compiled out unless CONFIG_DEBUG is set, leaving no effective bound in a production image. This is CWE-787 (out-of-bounds write): up to 895 bytes are written past the buffer in interrupt context, first corrupting the remainder of struct ipm_sedi_context - including the k_sem and k_mutex used by the transmit path, whose wait queues hold self-referential list pointers - and then adjacent static data. The overflowing bytes are read from registers following the message window, a portion of which are themselves peer-programmable. For intel_ish_5_* targets the doorbell is written by the host CPU's ISH driver through the device's memory-mapped register window, which is why the assessed vector is AV:L with PR:H rather than remote. The upstream fix rejects any doorbell whose encoded length exceeds IPC_DATA_LEN_MAX, logs the invalid value, and still acknowledges the doorbell so the peer is not left waiting.

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.0 MEDIUM
AV:L/AC:L/PR:H/UI:N/S:U/C:N/I:H/A:H
vuln.today AI 6.0 MEDIUM

Reachable only via local host-side driver/raw-BAR access (AV:L, PR:H); no data disclosure (C:N) but reliable OOB write corrupts kernel structures and crashes the ISH (I:H/A:H).

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

Primary rating from Vendor (zephyr).

CVSS VectorVendor: zephyr

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

DescriptionCVE.org

The Intel SEDI IPM (inter-processor mailbox) driver in drivers/ipm/ipm_sedi.c handles an inbound message interrupt in ipm_event_dispose(). It read the peer-written doorbell register, extracted the payload length with IPC_HEADER_GET_LENGTH(), and passed that length straight to sedi_ipc_read_msg() to copy the message into struct ipm_sedi_context.incoming_data_buf, without checking it against the buffer size. The doorbell length field is 10 bits wide (IPC_HEADER_LENGTH_MASK is 0x03FF), so it can encode up to 1023 bytes, while incoming_data_buf is IPC_DATA_LEN_MAX (128) bytes. The bounds check in the underlying HAL sedi_ipc_read_msg() is a DBG_CHECK that compiles away unless CONFIG_DEBUG is set, so no check remained in a production image.

The doorbell register is written by the peer processor on the other side of the IPC link - for the intel_ish_5_* targets, the host CPU's ISH driver, reached through the device's memory-mapped register window. Host-side software with driver-level or raw BAR access can therefore set a length of up to 1023 and cause the interrupt handler to copy far past the destination buffer. The affected path requires an application to have registered an IPM receive callback via ipm_register_callback(), which is the driver's normal mode of use.

The result is an out-of-bounds write of up to 895 bytes into static (.bss) memory, performed in interrupt context. The overflow first clobbers the rest of struct ipm_sedi_context - including the k_sem and k_mutex used by the transmit path, whose wait queues contain self-referential list pointers - and then adjacent static data, giving a kernel data-structure corruption and crash primitive. The overflowing bytes are read from registers following the message window, a portion of which are themselves peer-programmable. The fix rejects any doorbell whose encoded length exceeds IPC_DATA_LEN_MAX, logging it and acknowledging the doorbell so the peer is not left waiting.

Threat Intelligence Overview

EPSS Score
0.1%
Top 99% exploitable
Prevalence
Low
Zephyr is a popular RTOS, but the vulnerable path is a niche Intel ISH SEDI driver
Social Media
1
Sightings
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

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

Attack Technique

A buffer overflow occurs when a program writes more data to a memory buffer than it was allocated to hold, causing the excess data to spill into adjacent memory regions.

Memory corruption occurs when a program writes data beyond the boundaries of allocated memory regions or accesses memory in unintended ways, violating the integrity of the process's address space.

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