CVE-2026-80780 in Linux
Tóm tắt
Bởi VulDB • 04/09/2026
Trong kernel Linux, lỗ hổng sau đây đã được khắc phục:
HID: pidff: sửa lỗi ghi vượt ra ngoài vùng nhớ (OOB) khi hid->inputs trống
hid_pidff_init_with_quirks() lấy input_dev từ
list_entry(hid->inputs.next, struct hid_input, list)
mà không kiểm tra trước xem hid->inputs có khác rỗng hay không. Thành viên list của struct hid_input nằm tại offset 0, do đó trên một danh sách trống, hàm list_entry() trả về chính &hid->inputs và lệnh đọc tiếp theo từ hidinput->input sẽ truy cập vào một thành viên không liên quan của struct hid_device. dev sau đó trở thành một con trỏ bị nhầm lẫn kiểu (type-confused pointer), và quá trình khởi tạo force-feedback ghi dữ liệu thông qua nó: mỗi lệnh set_bit(FF_*, dev->ffbit) lưu 8 byte tại địa chỉ dev + 192, vượt ra ngoài biên của đối tượng mà dev thực sự ánh xạ, và input_ff_create() thêm các thao tác ghi tiếp theo cho một con trỏ heap và hai hàm con trỏ.
Trước khi có hid-universal-pidff, caller duy nhất là hid_pidff_init() từ usbhid, chạy trong ngữ cảnh HID_CLAIMED_INPUT và do đó luôn có ít nhất một hid_input. universal_pidff_probe() khởi tạo thiết bị với HID_CONNECT_DEFAULT & ~HID_CONNECT_FF sau đó gọi trực tiếp hid_pidff_init_with_quirks() bất cứ khi nào bộ mô tả (descriptor) mang trang sử dụng PID, bỏ qua cơ chế kiểm soát này. Một báo cáo descriptor mà chỉ có collection ứng dụng trên HID_UP_PID sẽ khiến hid->inputs trống trong khi hid_connect() vẫn thành công thông qua việc chiếm quyền bởi hidraw, do đó probe đạt đến lệnh list_entry không được bảo vệ.
Thao tác ghi xảy ra trong đường dẫn USB probe, trên workqueue hotplug, vì vậy chỉ cần cắm một thiết bị độc hại là đủ để kích hoạt lỗ hổng này; không yêu cầu phần mềm tấn công hay người dùng đã đăng nhập. KASAN báo cáo lỗi ghi vượt biên 8 byte trong hid_pidff_init_with_quirks() được gọi từ universal_pidff_probe().
Kiểm tra danh sách trống trước khi lấy dev và trả về -ENODEV, giống như các trình điều khiển force-feedback HID khác vẫn làm. universal_pidff_probe() sẽ truyền lại lỗi và thực hiện quá trình unwind (hoàn tác).
Được phát hiện bởi XBOW, được phân loại bởi Baul Lee <[email protected]>
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.