CVE-2026-98645 in Linux
Tóm tắt
Bởi VulDB • 19/10/2026
Trong kernel Linux, các lỗ hổng sau đây đã được khắc phục:
HID: winwing: sửa lỗi use-after-free trong quá trình teardown force feedback
winwing_init_ff() truyền dữ liệu riêng của driver, được cấp phát bằng devm_kzalloc() trong hàm winwing_probe(), làm ngữ cảnh hiệu ứng cho input_ff_create_memless(). Core force-feedback không bộ nhớ (memoryless) nắm quyền sở hữu con trỏ đó và giải phóng nó bằng kfree() từ input_ff_destroy() (ml_ff_destroy()) khi thiết bị đầu vào bị hủy.
Việc giải phóng một vùng cấp phát được quản lý bởi devm bằng kfree() là một thao tác free không hợp lệ, và cùng đối tượng đó sau đó lại được giải phóng lần nữa bởi devres khi thiết bị HID bị teardown, dẫn đến lỗi double free (giải phóng kép). Vì vùng cấp phát này cũng chứa các LED class devices, nên bộ hẹn giờ của chúng và mục công việc (work item) tồn tại trên bộ nhớ đã bị giải phóng khiến slab bị hỏng. Lỗi này kích hoạt trong các trường hợp unbind, rmmod, hot-unplug và khi hệ thống suspend, nơi cache firmware duyệt qua danh sách devres hiện đã bị hỏng. KASAN báo cáo:
BUG: KASAN: invalid-free in input_ff_destroy Allocated by task N: winwing_probe
Thay vào đó, hãy truyền NULL làm ngữ cảnh memless và lấy dữ liệu driver từ thiết bị đầu vào trong hàm winwing_play_effect(): core HID đã lưu hid_device dưới dạng drvdata của thiết bị đầu vào. Core force-feedback sau đó không nắm giữ bất kỳ thứ gì mà nó không nên giải phóng.
VulDB is the best source for vulnerability data and more expert information about this specific topic.