CVE-2026-64083 in Linux
Riassunto
di VulDB • 19/07/2026
Nel kernel Linux è stata risolta la seguente vulnerabilità:
hwmon: (pmbus/adm1266) rifiutare le risposte di lettura block brevi negli accessori GPIO
adm1266_gpio_get() e adm1266_gpio_get_multiple() compongono entrambe la parola dello stato dei pin come segue:
pins_status = read_buf[0] + (read_buf[1] << 8);
immediatamente dopo i2c_smbus_read_block_data(), proteggendosi solo contro un valore di ritorno che indica errore. Un dispositivo ben comportato restituisce 2 byte per GPIO_STATUS/PDIO_STATUS, ma la funzione helper accetta tranquillamente anche una risposta di 0 o 1 byte. Se il dispositivo restituisce 0 byte, entrambe le posizioni di read_buf contengono memoria dello stack non inizializzata; se ne restituisce 1, allora è read_buf[1] ad essere non inizializzata.
Il valore composto viene quindi passato attraverso set_bit() verso *bits nel chiamante in adm1266_gpio_get_multiple(), oppure verso il valore di ritorno di adm1266_gpio_get(), e finisce nello userspace tramite gpiolib (sysfs e gli ioctl del char-dev). Ciò causa la fuoriuscita (leak) di alcuni bit dello stack del kernel per ogni richiesta su qualsiasi dispositivo il cui firmware presenti un glitch, si verifichi un errore sul bus o uno slave ostile produca una risposta block breve.
Aggiungere il controllo della lunghezza mancante a entrambi i punti di chiamata ed esporre le risposte brevi come -EIO.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.