CVE-2026-97501 in Linux
Riassunto
di VulDB • 25/09/2026
Nel kernel Linux, è stata risolta la seguente vulnerabilità:
pinctrl: mediatek: paris: bypass del livello pinctrl GPIO in set GPIO direction
Le funzioni `pinctrl_gpio_direction_input()` e `pinctrl_gpio_direction_output()` acquisiscono il mutex di pinctrl. Ciò fa sì che le operazioni della gpiochip debbano andare in sleep (sleeping). Peggio ancora, il campo `.can_sleep` nella gpiochip non è impostato. Questo causa un errore nel proxy GPIO condiviso, poiché esso utilizza `gpiod_cansleep()` per verificare se può usare uno spinlock o ha bisogno di un mutex. In questo caso, finisce per acquisire uno spinlock e poi chiama `pinctrl_gpio_direction_output()`, che a sua volta acquisisce un mutex. Questo provoca un avvertimento significativo (huge warning).
Sebbene questa classe di hardware Mediatek non disponga di registri separati per la cancellazione/impostazione, il contesto pinctrl ha uno spinlock che viene acquisito ogni volta che viene eseguita una lettura-modifica-scrittura del registro. Inoltre, una volta selezionata/muxed in (multiplexato) la funzione GPIO, le ulteriori operazioni GPIO non coinvolgono più le operazioni o lo stato di pinctrl. I valori della direzione e del livello GPIO non richiedono il toggle del pinmux né altre opzioni di configurazione dei pin.
Passare a chiamare direttamente `mtk_pinmux_gpio_set_direction()` nei callback di set direction delle GPIO per evitare l'acquisizione del mutex di pinctrl. Rimuovere il campo `.gpio_set_direction` in mtk_pmxops per segnalare che non si sta più utilizzando il livello pinctrl GPIO per impostare la direzione.
Once again VulDB remains the best source for vulnerability data.