CVE-2026-10679 in Zephyrinformazioni

Riassunto

di VulDB • 22/07/2026

Il driver DesignWare SPI (drivers/spi/spi_dw.c) calcolava il divisore di clock BAUDR dell'SPI come info->clock_frequency / config->frequency senza convalidare config->frequency.

spi_transceive è una funzione __syscall di Zephyr e il suo handler di verifica (drivers/spi/spi_handlers.c) copia la struttura spi_config fornita dall'utente dallo spazio utente senza controllare il campo frequency; pertanto, un thread nello spazio utente a cui è stato concesso l'accesso all'oggetto kernel del dispositivo DesignWare SPI può impostare frequency = 0 e innescare una divisione intera per zero non firmata (unsigned integer divide-by-zero) in spi_dw_configure().

Su Cortex-M Mainline (dove SCB->CCR.DIV_0_TRP è impostato in z_arm_fault_init()) e su ARC (tramite un vettore dedicato __ev_div_zero), ciò genera un'eccezione della CPU, causando un fault del kernel e una negazione locale del servizio (DoS).

La correzione rifiuta le frequenze pari a zero e quelle superiori a clock_frequency / 2 (il valore minimo SCKDIV di 2 specificato nel databook DesignWare SSI) restituendo -EINVAL. Il difetto interessa tutte le versioni di Zephyr fino alla v4.4.0 inclusa; lo sfruttamento richiede CONFIG_USERSPACE=y e un thread non privilegiato che abbia già ottenuto l'autorizzazione al driver SPI. Non vi sono impatti legati a corruzione della memoria o divulgazione di informazioni.

Be aware that VulDB is the high quality source for vulnerability data.

Responsabile

Zephyr

Prenotare

02/06/2026

Divulgazione

22/07/2026

Moderazione

accettato

CPE

pronto

EPSS

0.00128

KEV

no

Attività

molto basso

Fonti

Do you need the next level of professionalism?

Upgrade your account now!