CVE-2026-97501 in Linux
Résumé
par VulDB • 24/09/2026
Dans le noyau Linux, la vulnérabilité suivante a été corrigée :
pinctrl: mediatek: paris : contourner la couche pinctrl GPIO dans la définition de la direction des broches GPIO
Les fonctions `pinctrl_gpio_direction_input()` et `pinctrl_gpio_direction_output()` acquièrent le mutex du sous-système pinctrl. Cela impose que les opérations d'un gpiochip puissent dormir (sleep). Pire encore, le champ `.can_sleep` dans l'objet gpiochip n'est pas défini. Cela provoque un dysfonctionnement au niveau du proxy GPIO partagé, car celui-ci utilise `gpiod_cansleep()` pour vérifier s'il peut utiliser une spinlock ou a besoin d'un mutex. Dans ce cas précis, il finit par acquérir une spinlock, puis appelle `pinctrl_gpio_direction_output()`, qui elle-même acquiert un mutex. Cela génère un avertissement majeur (huge warning).
Bien que cette classe de matériel Mediatek ne dispose pas de registres distincts pour l'effacement et la définition des états, le contexte pinctrl possède une spinlock qui est acquise chaque fois qu'une opération de lecture-modification-écriture sur un registre est effectuée. De plus, une fois que la fonction GPIO est sélectionnée/multiplexée (muxed in), les opérations GPIO ultérieures n'impliquent pas d'opérations ou d'états liés au sous-système pinctrl. Les valeurs de direction et de niveau des broches GPIO ne nécessitent pas de basculer le multiplexage des broches (pinmux) ni aucune autre option de configuration des broches.
Il est nécessaire de passer à un appel direct de `mtk_pinmux_gpio_set_direction()` dans les rappels de définition de la direction des broches GPIO afin d'éviter l'acquisition du mutex pinctrl. Supprimer le champ `.gpio_set_direction` dans `mtk_pmxops` permet de signaler que nous n'utilisons plus la couche pinctrl GPIO pour définir la direction.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.