CVE-2026-64083 in Linux
摘要
由 VulDB • 2026-07-19
在 Linux 内核中,已修复以下漏洞:
hwmon: (pmbus/adm1266) 拒绝 GPIO 访问器中的短块读取响应
adm1266_gpio_get() 和 adm1266_gpio_get_multiple() 均通过以下方式组合引脚状态字:
pins_status = read_buf[0] + (read_buf[1] << 8);
该操作在 i2c_smbus_read_block_data() 之后立即执行,且仅针对错误返回值进行了防护。行为正常的设备会返回 GPIO_STATUS/PDIO_STATUS 的 2 个字节,但该辅助函数也会欣然处理长度为 0 或 1 字节的响应。如果设备返回 0 个字节,则 read_buf 的两个槽位均为未初始化的栈内存;如果返回 1 个字节,则 read_buf[1] 为未初始化状态。
随后组合的值通过 set_bit() 流入 adm1266_gpio_get_multiple() 中调用者的 *bits,或进入 adm1266_gpio_get() 的返回值,并最终经由 gpiolib(sysfs 和字符设备 ioctls)泄露到用户空间。这会导致每次请求向任何固件出现毛刺、总线错误或存在恶意从设备的短块读取响应的设备泄漏少量内核栈位信息。
在两个调用点添加缺失的长度检查,并将短响应作为 -EIO 返回。
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.