CVE-2026-17051: bounds in zephyrproject zephyr
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.
AI Analysis
Technical Summary
The Intel SEDI IPM driver in Zephyr's ipm_sedi.c improperly handles inbound message interrupts by reading a peer-written doorbell register to extract a payload length without verifying it against the fixed buffer size of 128 bytes. The doorbell length field can specify up to 1023 bytes, allowing a peer processor to cause an out-of-bounds write of up to 895 bytes into static memory. This overflow corrupts kernel data structures, including synchronization primitives, leading to potential kernel crashes. The vulnerability is exploitable when an application registers an IPM receive callback. The underlying HAL's debug-only bounds check is not present in production builds. The patch rejects doorbell messages with lengths exceeding the buffer size, logging and acknowledging them to prevent peer blocking.
Potential Impact
An attacker with driver-level or raw BAR access on the peer processor side can trigger an out-of-bounds write in interrupt context, corrupting kernel data structures and causing system crashes. This results in denial of service and potential instability of the affected device. There is no confidentiality impact, but integrity and availability are impacted.
Mitigation Recommendations
Patch status is not yet confirmed — check the vendor advisory for current remediation guidance. The described fix rejects doorbell messages with lengths exceeding the buffer size, preventing the overflow. Until an official patch is applied, restrict access to the peer processor interface to trusted software only and avoid registering IPM receive callbacks if possible.
CVE-2026-17051: bounds in zephyrproject zephyr
Description
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.
CVSS v3.1
Score 6.0medium
Affected software
zephyrproject
zephyr
Run on your own infrastructure? Check whether these packages are installed with threat-finder — our free open-source scanner.
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
The Intel SEDI IPM driver in Zephyr's ipm_sedi.c improperly handles inbound message interrupts by reading a peer-written doorbell register to extract a payload length without verifying it against the fixed buffer size of 128 bytes. The doorbell length field can specify up to 1023 bytes, allowing a peer processor to cause an out-of-bounds write of up to 895 bytes into static memory. This overflow corrupts kernel data structures, including synchronization primitives, leading to potential kernel crashes. The vulnerability is exploitable when an application registers an IPM receive callback. The underlying HAL's debug-only bounds check is not present in production builds. The patch rejects doorbell messages with lengths exceeding the buffer size, logging and acknowledging them to prevent peer blocking.
Potential Impact
An attacker with driver-level or raw BAR access on the peer processor side can trigger an out-of-bounds write in interrupt context, corrupting kernel data structures and causing system crashes. This results in denial of service and potential instability of the affected device. There is no confidentiality impact, but integrity and availability are impacted.
Mitigation Recommendations
Patch status is not yet confirmed — check the vendor advisory for current remediation guidance. The described fix rejects doorbell messages with lengths exceeding the buffer size, preventing the overflow. Until an official patch is applied, restrict access to the peer processor interface to trusted software only and avoid registering IPM receive callbacks if possible.
Technical Details
- Data Version
- 5.2
- Assigner Short Name
- zephyr
- Date Reserved
- 2026-07-24T13:31:04.469Z
- Cvss Version
- 3.1
- State
- PUBLISHED
Threat ID: 6ab17f3e55bf5e2cf554e7c8
Added to database: 09/21/2026, 19:02:22 UTC
Last enriched: 09/21/2026, 19:16:44 UTC
Last updated: 09/21/2026, 23:48:20 UTC
Views: 9
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.