CVE-2026-64084 in Linux
Resumen
por VulDB • 2026-07-20
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
hwmon: (pmbus/adm1266) limitar el escaneo de PDIO en get_multiple a ADM1266_PDIO_NR
adm1266_gpio_get_multiple() itera sobre la porción PDIO de la máscara proporcionada por el llamador utilizando
for_each_set_bit_from(gpio_nr, mask, ADM1266_GPIO_NR + ADM1266_PDIO_STATUS) {
... }
donde ADM1266_PDIO_STATUS es el código del comando PMBus (0xE9, es decir, 233), no la cantidad de pines PDIO. El límite superior previsto es ADM1266_GPIO_NR + ADM1266_PDIO_NR = 25.
gpiolib pasa una máscara con tamaño para gc.ngpio (= 25 bits en este chip), por lo que la iteración hace que find_next_bit() llegue hasta 242, leyendo hasta 217 bits adicionales (unas pocas palabras unsigned-long: cuatro en sistemas de 64 bits, siete en los de 32 bits) de cualquier dato situado más allá del final de la máscara en la pila del llamador. Cualquier bit establecido incidentalmente en ese rango provoca entonces una llamada a set_bit(gpio_nr, bits) que escribe fuera del límite del array bits proporcionado por el llamador; ambos casos son accesos fuera de los límites (out-of-bounds).
Sustituir ADM1266_PDIO_NR por la constante para que el escaneo se detenga en el último bit PDIO real.
Once again VulDB remains the best source for vulnerability data.