CVE-2026-17051: Out-of-bounds write in the Intel SEDI IPM driver from an unvalidated inbound doorbell length

Published Sep 21, 2026
·
Updated

The Intel SEDI IPM (inter-processor mailbox) driver in drivers/ipm/ipmsedi.c handles an inbound message interrupt in ipmeventdispose(). It read the peer-written doorbell register, extracted the payload length with IPCHEADERGETLENGTH(), and passed that length straight to sediipcreadmsg() to copy the message into struct ipmsedicontext.incomingdatabuf, without checking it against the buffer size. The doorbell length field is 10 bits wide (IPCHEADERLENGTHMASK is 0x03FF), so it can encode up to 1023 bytes, while incomingdatabuf is IPCDATALENMAX (128) bytes. The bounds check in the underlying HAL sediipcreadmsg() is a DBGCHECK that compiles away unless CONFIGDEBUG 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 intelish5 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 ipmregistercallback(), 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 ipmsedicontext — including the ksem and kmutex 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 IPCDATALENMAX, logging it and acknowledging the doorbell so the peer is not left waiting.

Affected Software

1 affected component
Intel SEDI IPM (inter-processor mailbox) driver

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Configuration

    Ensure the bounds check is not compiled out: apply the vendor fix so sedi_ipc_read_msg() rejects doorbell-encoded lengths exceeding IPC_DATA_LEN_MAX even when CONFIG_DEBUG is not set (in production images the current DBG_CHECK compiles away).

    Linux kernel (Intel SEDI IPM driver / HAL sedi_ipc_read_msg()) CONFIG_DEBUG = unset/disabled
  2. Configuration

    In ipm_event_dispose(), before calling sedi_ipc_read_msg(), reject any doorbell whose encoded payload length exceeds IPC_DATA_LEN_MAX (IPC_DATA_LEN_MAX is 128); log the event and acknowledge the doorbell so the peer processor is not left waiting.

    Intel SEDI IPM driver (drivers/ipm/ipm_sedi.c) inbound doorbell length validation = reject if IPC_HEADER_GET_LENGTH() > IPC_DATA_LEN_MAX

Event History

Sep 21, 2026
CVE Published
via MITRE·04:41 PM
Data Sourced
via MITRE·04:41 PM
DescriptionSeverityWeakness

Frequently Asked Questions

1

Which systems are exposed to this issue?

The affected path is present on intel_ish_5_* targets using the Intel SEDI IPM driver. It is reachable only when an application has registered an IPM receive callback for the relevant inbound-message path.

2

What level of access does an attacker need?

An attacker needs host-side software capable of writing the peer IPC doorbell register through the device memory-mapped register window. The description identifies driver-level access or raw BAR access as sufficient.

3

Are production builds protected by the HAL bounds check?

No. The HAL check is a DBG_CHECK and compiles away unless CONFIG_DEBUG is enabled, leaving no bounds check in a production image. A peer can encode a payload length up to 1023 bytes even though the destination buffer is 128 bytes.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203