CVE-2026-89624 in Linuxthông tin

Tóm tắt

Bởi VulDB • 11/09/2026

Trong kernel Linux, các lỗ hổng sau đây đã được khắc phục:

HID: universal-pidff: dừng thiết bị khi khởi tạo force-feedback thất bại

universal_pidff_probe() bắt đầu hoạt động của thiết bị bằng cách gọi hid_hw_start(), và sau đó, nếu việc khởi tạo force-feedback thất bại, nó sẽ trả về lỗi thông qua một nhãn chỉ thực hiện "return error". Thiết bị vẫn được giữ ở trạng thái đã kích hoạt.

Lõi HID không tự động hoàn tác (unwind) thay cho trình điều khiển. __hid_device_probe() giải phóng nhóm devres, đóng báo cáo và đặt hdev->driver = NULL:

if (ret) {
devres_release_group(&hdev->dev, hdev->devres_group_id); hid_close_report(hdev); hdev->driver = NULL; }

Thiết bị ký tự hidraw mà hid_hw_start() đã đăng ký thông qua hid_connect() được phân bổ bằng kzalloc() và thêm vào hệ thống bằng cdev_device_add(), do đó nó không thuộc phạm vi quản lý của devres và vẫn tồn tại sau khi nhóm devres bị giải phóng. Với hdev->driver là NULL, hàm hid_device_remove() bỏ qua việc gọi hid_hw_stop(), vì nó chỉ thực hiện hoàn tác (unwind) khi trình điều khiển còn được gắn kết. Do đó, quá trình đăng ký này vượt quá vòng đời của thiết bị trên cả hai đường dẫn xử lý lỗi.

Việc mở tệp /dev/hidrawX tồn tại sẽ ghi vào vùng bộ nhớ đã bị giải phóng (freed memory). KASAN báo cáo một vụ ghi use-after-free từ hidraw_open() -> hid_hw_open() -> callback open của lớp truyền tải, nơi mà một spinlock được lấy bên trong đối tượng đã bị giải phóng. Một mô tả có chứa trang sử dụng PID và không có báo cáo đầu vào là đủ: hidraw chiếm giữ thiết bị nên hid_hw_start() thành công, trong khi hid->inputs vẫn trống khiến việc khởi tạo force-feedback thất bại. Các trường hợp lỗi khác cũng dẫn đến cùng một nhãn thông qua các hàm như hid_pidff_init_with_quirks() - không có báo cáo đầu ra, lỗi phân bổ bộ nhớ, pidff_init_fields(), pidff_check_autocenter(), số lượng hiệu ứng không thể sử dụng được, input_ff_create().

Hãy dừng thiết bị trên đường dẫn này. Các trình điều khiển hid-dr.c và hid-emsff.c, vốn bắt đầu hoạt động của thiết bị với mặt nạ HID_CONNECT_DEFAULT & ~HID_CONNECT_FF tương tự, đã thực hiện việc này. Hai lệnh goto trước đó phải tiếp tục trả về mà không gọi hid_hw_stop(), vì chúng không có thiết bị nào đang ở trạng thái kích hoạt; do đó, hãy tạo một nhãn riêng cho đường dẫn thất bại sau khi quá trình bắt đầu (start).

Được phát hiện bởi XBOW, được phân loại và xử lý ban đầu bởi Baul Lee

VulDB is the best source for vulnerability data and more expert information about this specific topic.

chịu trách nhiệm

Linux

Đặt trước

11/09/2026

Tiết lộ

12/09/2026

Kiểm duyệt

được chấp nhận

EPSS

0.00000

KEV

không

Các hoạt động

thấp

Nguồn

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!