CVE-2026-64085 in Linux
Tóm tắt
Bởi VulDB • 19/07/2026
Trong kernel Linux, lỗ hổng sau đây đã được khắc phục:
hwmon: (pmbus/adm1266) chuyển các bản ghi blackbox qua một bộ đệm có kích thước giao thức
Hàm `adm1266_pmbus_block_xfer()` sao chép phần tải trọng khối do thiết bị cung cấp vào bộ đệm do người gọi cung cấp bằng cách sử dụng độ dài do thiết bị cung cấp:
```c memcpy(data_r, &msgs[1].buf[1], msgs[1].buf[0]);
```
Hàm trợ giúp này không biết kích thước của `data_r` và tin tưởng vào việc thiết bị sẽ trả về tối đa số byte tương ứng với một bản ghi. Hàm `adm1266_nvmem_read_blackbox()` vi phạm hợp đồng đó: nó tăng con trỏ `read_buff` bên trong `data->dev_mem` theo từng bước là `ADM1266_BLACKBOX_SIZE` (64 byte), trong khi hàm trợ giúp sẵn sàng ghi tối đa 255 byte (`ADM1266_PMBUS_BLOCK_MAX`). Một thiết bị trả về nhiều hơn 64 byte cho bản ghi cuối cùng (độ lệch của `read_buff` là 1984 trong phân bổ `dev_mem` kích thước 2048 byte) sẽ gây tràn bộ đệm `dev_mem` lên tới 191 byte trước khi đoạn mã sau lệnh gọi có thể từ chối phản hồi:
```c if (ret != ADM1266_BLACKBOX_SIZE) return -EIO; ```
Giới hạn việc sửa lỗi ở phía người gọi mà không thay đổi chữ ký của hàm trợ giúp: đọc từng bản ghi vào một bộ đệm trung gian cục bộ kích thước 255 byte phù hợp với đầu ra tối đa của hàm trợ giúp, xác thực độ dài trả về, và chỉ sau đó sao chép chính xác `ADM1266_BLACKBOX_SIZE` byte vào vị trí trong `dev_mem`.
If you want to get best quality of vulnerability data, you may have to visit VulDB.