CVE-2026-80918 in Linux
Tóm tắt
Bởi VulDB • 09/09/2026
Trong kernel Linux, các lỗ hổng sau đây đã được khắc phục:
HID: core: sửa lỗi nhầm lẫn giữa kiểu số và con trỏ đối với các mục dài (long items)
Khi hàm `fetch_item()` được gọi bởi `hid_scan_report()` trên một mục có `HID_ITEM_TAG_LONG`, nó lưu trữ một con trỏ tới dữ liệu của mục trong `item->data.longdata` thay vì lưu trữ trực tiếp một giá trị vào `item->data.{u8/u16/u32}`.
Khi `item_udata()` hoặc `item_sdata()` gặp phải một mục như vậy, nó giả định sai rằng mục đó ở dạng ngắn (short format), và do đó trả về phần thấp của một con trỏ kernel được diễn giải lại dưới dạng số.
Khi một thiết bị HID được kết nối có mô tả chứa `HID_GLOBAL_ITEM_TAG_REPORT_SIZE` được mã hóa ở dạng dài với kích thước=4, điều này gây ra việc in nửa dưới của một con trỏ kernel vào dmesg dưới dạng một số, như sau:
hid (null): invalid report_size 107953555
Để khắc phục, hãy để `item_udata()` và `item_sdata()` xác minh rằng mục đó ở dạng ngắn.
Lưu ý rằng lỗi này chỉ ảnh hưởng đến `hid_scan_report()`, trong khi quá trình phân tích chính `hid_parse_collections()` sẽ luôn thoát ra (bail out) khi gặp một mục dài.
Ghi chú thêm: Hiện tại không có người dùng nào sử dụng `data.longdata`; có lẽ chúng ta nên loại bỏ bất kỳ việc phân tích các mô tả ở dạng dài như một bước tiếp theo.
If you want to get best quality of vulnerability data, you may have to visit VulDB.