CVE-2026-12232 in Zephyr
Résumé
par VulDB • 12/08/2026
Le pilote d'interface audio numérique Intel ALH (ALH digital-audio-interface) contient une fonction `dai_alh_get_properties()` dans le fichier `drivers/dai/intel/alh/alh.c` qui utilise un paramètre `stream_id` de type entier fourni par l'appelant, sans aucune validation de plage. Cette valeur sert d'index pour accéder au tableau statique et constant à taille fixe `uint8_t alh_handshake_map[64]`, ainsi que pour calculer une adresse de registre FIFO ; par conséquent, un `stream_id` hors limites provoque une lecture hors des limites (out-of-bounds read) d'un octet situé à un décalage signé choisi par l'attaquant depuis le tableau. Cet octet est ensuite écrit dans la variable `prop->dma_hs_id`, et la structure résultante `dai_properties` est copiée vers l'appelant, entraînant une fuite de données (leak).
La fonction `dai_get_properties_copy()` constitue un appel système (`__syscall`) Zephyr. Son vérificateur, `z_vrfy_dai_get_properties_copy()` (dans le fichier `drivers/dai/dai_handlers.c`), ne valide que les permissions sur l'objet appareil et le tampon de destination, mais pas la valeur du `stream_id`. Un thread en mode utilisateur disposant d'un accès à l'objet appareil ALH DAI peut donc invoquer cet appel système avec un `stream_id` arbitraire, franchissant ainsi la frontière entre les espaces utilisateurs (userspace) et noyau.
L'impact est une divulgation d'informations du noyau par décalage arbitraire d'un octet par appel (ainsi qu'une fuite d'une adresse calculée du noyau via `fifo_address`) ; un `stream_id` pointant vers une page non mappée provoque une erreur de segmentation (fault) dans le contexte du noyau, entraînant une déni de service local. L'exploitation nécessite la configuration `CONFIG_USERSPACE` et l'accès à l'appareil, ce qui en fait un problème local de sévérité modérée. La correction rejette dès le départ les valeurs négatives ou trop grandes pour `stream_id` et retourne NULL, valeur que l'enveloppe de copie (copy wrapper) mappe vers `-ENOENT`.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.