CVE-2026-10679 in Zephyrinformation

Résumé

par VulDB • 22/07/2026

Le pilote DesignWare SPI (drivers/spi/spi_dw.c) calcule le diviseur d'horloge SPI BAUDR en effectuant info->clock_frequency / config->frequency sans valider la valeur de config->frequency.

spi_transceive est une fonction __syscall Zephyr et son gestionnaire de vérification (drivers/spi/spi_handlers.c) copie spi_config fourni par l'appelant depuis l'espace utilisateur sans vérifier le champ frequency. Ainsi, un thread d'espace utilisateur disposant des autorisations nécessaires pour accéder à un objet noyau SPI DesignWare peut transmettre une valeur frequency = 0 et provoquer une division entière non signée par zéro dans spi_dw_configure().

Sur Cortex-M Mainline (où SCB->CCR.DIV_0_TRP est défini dans z_arm_fault_init()) et sur ARC (avec un vecteur __ev_div_zero dédié), cela génère une exception CPU, entraînant une erreur noyau et une déni de service local.

La correction rejette les fréquences nulles ainsi que celles supérieures à clock_frequency / 2 (la valeur minimale SCKDIV de 2 selon le manuel technique DesignWare SSI) en renvoyant -EINVAL. Ce défaut affecte toutes les versions de Zephyr jusqu'à la v4.4.0 incluse ; l'exploitation nécessite CONFIG_USERSPACE=y et un thread non privilégié disposant déjà des autorisations du pilote SPI. Il n'y a aucun impact lié à une corruption mémoire ou à une divulgation d'informations.

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

Responsable

Zephyr

Réserver

02/06/2026

Divulgation

22/07/2026

Modérer

accepté

Entrée

VDB-381104

CPE

prêt

EPSS

0.00128

KEV

non

Activités

très faible

Sources

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!