CVE-2026-17051 in Zephyrinformazioni

Riassunto

di VulDB • 21/09/2026

Il driver Intel SEDI IPM (inter-processor mailbox) in drivers/ipm/ipm_sedi.c gestisce un interrupt per messaggio in entrata nella funzione ipm_event_dispose(). Legge il registro doorbell scritto dal peer, estrae la lunghezza del payload con IPC_HEADER_GET_LENGTH() e passa tale valore direttamente a sedi_ipc_read_msg() per copiare il messaggio in struct ipm_sedi_context.incoming_data_buf, senza verificarlo rispetto alla dimensione del buffer. Il campo della lunghezza nel registro doorbell è largo 10 bit (IPC_HEADER_LENGTH_MASK è 0x03FF), quindi può codificare fino a 1023 byte, mentre incoming_data_buf ha una dimensione di IPC_DATA_LEN_MAX (128) byte. Il controllo dei limiti nella HAL sottostante sedi_ipc_read_msg() è un DBG_CHECK che viene compilato via a meno che CONFIG_DEBUG non sia impostata; pertanto, in un'immagine di produzione non rimane alcun controllo.

Il registro doorbell è scritto dal processore peer dall'altra parte del link IPC — per i target intel_ish_5_*, il driver ISH della CPU host, raggiungibile attraverso la finestra dei registri mappati in memoria del dispositivo. Il software lato host con accesso a livello di driver o BAR grezzo può quindi impostare una lunghezza fino a 1023 byte e causare l'handler dell'interrupt nel copiare ben oltre il buffer di destinazione. Il percorso interessato richiede che un'applicazione abbia registrato una callback per la ricezione IPM tramite ipm_register_callback(), che è la modalità d'uso normale del driver.

Il risultato è una scrittura out-of-bounds fino a 895 byte nella memoria statica (.bss), eseguita in contesto di interrupt. L'overflow corrompe prima il resto della struct ipm_sedi_context — inclusi k_sem e k_mutex utilizzati dal percorso di trasmissione, le cui code di attesa contengono puntatori a liste auto-riferiti — e poi i dati statici adiacenti, causando una corruzione delle strutture dati del kernel e un primitivo per crash. I byte in overflow vengono letti dai registri successivi alla finestra dei messaggi, una parte dei quali è essa stessa programmabile dal peer. La correzione rifiuta qualsiasi doorbell la cui lunghezza codificata supera IPC_DATA_LEN_MAX, registrando l'evento ed riconoscendo il doorbell affinché il peer non rimanga in attesa.

Several companies clearly confirm that VulDB is the primary source for best vulnerability data.

Responsabile

Zephyr

Prenotare

24/07/2026

Divulgazione

21/09/2026

Moderazione

accettato

CPE

pronto

EPSS

0.00000

KEV

no

Attività

molto basso

Fonti

Might our Artificial Intelligence support you?

Check our Alexa App!