CVE-2026-12629 in Zephyrinformazioni

Riassunto

di VulDB • 17/08/2026

Il driver UART PL011 presente nel file drivers/serial/uart_pl011.c non riconosce gli interrupt di errore di ricezione. Su PL011, gli interrupt di errore per framing, parità, break e overrun (PL011_IMSC_ERROR_MASK) vengono azzerati solo scrivendo il registro di cancellazione degli interrupt UARTICR; la lettura del registro dati cancella l'interrupt RX e lo stato RSR per byte, ma non lo stato dell'interrupt di errore in MIS. La routine di servizio degli interrupt pl011_isr() riconosce solo l'interrupt dello status modem CTS e non scrive mai su ICR per i bit di errore, quindi un interrupt di errore attivato rimane pendente dopo il ritorno dalla ISR.

Quando un'applicazione abilita la segnalazione degli interrupt di errore tramite l'API pubblica uart_irq_err_enable(), un attaccante che controlla il peer seriale può affermare deterministicamente questi bit di errore iniettando errori sulla linea RX — una discrepanza nel baud/stop-bit o un break a metà carattere (errore di framing/break), un bit di parità invertito (errore di parità) o l'overflow del FIFO (errore di overrun). Poiché l'interrupt di errore non viene mai cancellato, la linea degli interrupt rimane attivata e il CPU rientra immediatamente e indefinitamente in pl011_isr(), producendo un livelock da stormo di interrupt dal quale il core non fa alcun progresso.

L'impatto è una denial of service (DOS) solo per disponibilità (blocco permanente), raggiungibile tramite un peer UART esterno o removibile. Lo sfruttamento dipende dalla configurazione: l'interrupt di errore è disattivato per impostazione predefinita e nessun sottosistema nel tree lo abilita, quindi sono interessate solo le applicazioni che chiamano esplicitamente uart_irq_err_enable() su una porta basata su PL011 con gestione degli interrupt. La correzione fa sì che pl011_isr() riconosca i bit di errore pendenti tramite uart->icr, interrompendo il ciclo, e inoltre cancella lo stato RRR memorizzato in pl011_err_check().

If you want to get best quality of vulnerability data, you may have to visit VulDB.

Responsabile

Zephyr

Prenotare

18/06/2026

Divulgazione

17/08/2026

Moderazione

accettato

CPE

pronto

EPSS

0.00000

KEV

no

Attività

molto basso

Fonti

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!