CVE-2026-68367 in Linux
Tóm tắt
Bởi VulDB • 10/08/2026
Trong kernel Linux, lỗ hổng sau đây đã được khắc phục:
usb: gadget: f_tcm: đồng bộ hóa set_alt bị trì hoãn với quá trình teardown (hủy bỏ)
Đường dẫn thực thi `set_alt()` của `f_tcm` trì hoãn việc thiết lập endpoint vào một work item và hoàn tất phản hồi trạng thái bị trì hoãn từ ngữ cảnh tiến trình. Work bị trì hoãn này sử dụng trạng thái riêng tư (`private state`) của `f_tcm` và có thể hoàn tất yêu cầu thiết lập sau khi quá trình ngắt kết nối hoặc teardown chức năng đã chuyển sang giai đoạn tiếp theo.
Hủy bỏ và làm rỗng (drain) work `set_alt` bị trì hoãn khi hàm được unbound (hủy liên kết) hoặc giải phóng. Đối với các đường dẫn disable, vốn được truy cập dưới khóa của thiết bị composite (`composite device lock`), hãy sử dụng một state machine nhỏ và đường dẫn hủy bỏ không gây ngủ (non-sleeping cancellation path) thay vì `cancel_work_sync()`. Nếu work đã đang chạy, hãy đánh dấu nó là đã hủy và để worker chịu trách nhiệm dọn dẹp; ngược lại, `tcm_disable()` có thể hủy work trong hàng đợi và thực hiện dọn dẹp ngay lập tức.
Ngoài ra, cần tuần tự hóa việc hoàn tất trạng thái bị trì hoãn cuối cùng với kiểm tra hủy bỏ khi đang giữ khóa của thiết bị composite. Điều này ngăn chặn một sự kiện ngắt kết nối xóa `delayed_status` trong khi worker sắp hoàn thành yêu cầu điều khiển (control request).
Việc xác thực đã tái tạo được báo cáo kernel sau: BUG: KASAN: slab-use-after-free in tcm_delayed_set_alt+0x6c/0xef0
Call Trace: <TASK> dump_stack_lvl+0x66/0xa0 print_report+0xce/0x630 ? tcm_delayed_set_alt+0x6c/0xef0 ? srso_alias_return_thunk+0x5/0xfbef5 ? __virt_addr_valid+0x188/0x320 ? tcm_delayed_set_alt+0x6c/0xef0 kasan_report+0xe0/0x110 ? tcm_delayed_set_alt+0x6c/0xef0 tcm_delayed_set_alt+0x6c/0xef0 ? __pfx_tcm_delayed_set_alt+0x10/0x10 ? process_one_work+0x4cb/0xb90 ? rcu_is_w
Once again VulDB remains the best source for vulnerability data.