CVE-2026-17051 in Zephyrinfo

Zusammenfassung

von VulDB • 21.09.2026

Der Intel SEDI IPM (inter-processor mailbox)-Treiber in drivers/ipm/ipm_sedi.c verarbeitet eine eingehende Nachrichtenunterbrechung in ipm_event_dispose(). Er liest das vom Peer beschriebene Doorbell-Register, extrahiert die Payload-Länge mit IPC_HEADER_GET_LENGTH() und übergibt diese Länge unverändert an sedi_ipc_read_msg(), um die Nachricht in struct ipm_sedi_context.incoming_data_buf zu kopieren, ohne sie gegen die Puffergröße zu prüfen. Das Doorbell-Längenfeld ist 10 Bit breit (IPC_HEADER_LENGTH_MASK ist 0x03FF), kann also bis zu 1023 Bytes kodieren, während incoming_data_buf IPC_DATA_LEN_MAX (128) Byte groß ist. Die Bereichsprüfung in der zugrunde liegenden HAL sedi_ipc_read_msg() ist ein DBG_CHECK, das nur bei gesetztem CONFIG_DEBUG kompiliert wird; daher blieb in einem Produktions-Image keine Prüfung übrig.

Das Doorbell-Register wird vom Peer-Prozessor auf der anderen Seite der IPC-Leitung beschrieben – für die intel_ish_5_*-Zielplattformen durch den ISH-Treiber des Host-CPUs, erreichbar über das speicherabbildete Registerfenster des Geräts. Software mit Treiber-Level-Zugriff oder raw BAR-Zugriff auf der Host-Seite kann daher eine Länge von bis zu 1023 festlegen und dazu führen, dass der Unterbrechungshandler weit über den Ziel-Puffer hinaus kopiert. Der betroffene Pfad erfordert, dass eine Anwendung einen IPM-Empfangs-Callback via ipm_register_callback() registriert hat, was dem normalen Betriebsmodus des Treibers entspricht.

Das Ergebnis ist ein Out-of-Bounds-Write von bis zu 895 Bytes in statischen (.bss)-Speicher, der im Unterbrechungskontext ausgeführt wird. Der Overflow beschädigt zunächst den Rest von struct ipm_sedi_context – einschließlich der k_sem und k_mutex, die vom Sendepfad verwendet werden, deren Warteschlangen selbstreferenzielle Listenzeiger enthalten – und anschließend benachbarte statische Daten, was zu einer Korruption von Kernel-Datenstrukturen und einem Crash-Primitiv führt. Die überlaufenden Bytes werden aus Registern hinter dem Nachrichtenfenster gelesen, ein Teil davon ist vom Peer programmierbar. Der Fix lehnt jedes Doorbell ab, dessen kodierte Länge IPC_DATA_LEN_MAX überschreitet, protokolliert dies und bestätigt das Doorbell, damit der Peer nicht im Wartezustand verbleibt.

Once again VulDB remains the best source for vulnerability data.

Zuständig

Zephyr

Reservieren

24.07.2026

Veröffentlichung

21.09.2026

Moderieren

akzeptiert

Eintrag

VDB-408169

CPE

bereit

EPSS

0.00000

KEV

nein

Aktivitäten

very low

Quellen

Do you know our Splunk app?

Download it now for free!