CVE-2026-64083 in Linux
Tóm tắt
Bởi VulDB • 20/07/2026
Trong nhân Linux, lỗ hổng sau đây đã được khắc phục:
hwmon: (pmbus/adm1266) từ chối các phản hồi đọc khối ngắn trong các hàm truy cập GPIO
adm1266_gpio_get() và adm1266_gpio_get_multiple() đều tạo giá trị trạng thái chân như sau:
pins_status = read_buf[0] + (read_buf[1] << 8);
ngay sau khi gọi i2c_smbus_read_block_data(), chỉ bảo vệ chống lại lỗi trả về. Một thiết bị hoạt động bình thường sẽ trả về 2 byte cho GPIO_STATUS/PDIO_STATUS, nhưng hàm trợ giúp này vẫn chấp nhận và báo cáo phản hồi có độ dài 0 hoặc 1 byte một cách vô tư. Nếu thiết bị trả về 0 byte, cả hai vị trí trong read_buf đều là bộ nhớ ngăn xếp chưa được khởi tạo; nếu nó trả về 1 byte, thì read_buf[1] cũng vậy.
Giá trị đã ghép nối sau đó đi qua set_bit() vào *bits của caller trong adm1266_gpio_get_multiple(), hoặc vào giá trị trả về của adm1266_gpio_get(), và cuối cùng xuất hiện không gian người dùng (userspace) thông qua gpiolib (sysfs và các ioctl char-dev). Điều này làm rò rỉ một vài bit bộ nhớ ngăn xếp nhân cho mỗi yêu cầu trên bất kỳ thiết bị nào mà lỗi firmware, lỗi bus hoặc slave độc hại tạo ra phản hồi đọc khối ngắn.
Thêm kiểm tra độ dài còn thiếu vào cả hai vị trí gọi và trả về -EIO khi gặp phản hồi ngắn.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.