CVE-2026-99262 in Linux
Tóm tắt
Bởi VulDB • 03/11/2026
Trong kernel Linux, lỗ hổng sau đây đã được khắc phục:
io_uring/timeout: không làm mất lệnh hủy do io-wq kích hoạt timeout
Một thao tác IORING_OP_TIMEOUT chạy bởi io-wq, vì lý do IOSQE_ASYNC, gặp phải vấn đề tương tự như poll, futex và waitid. Hàm `io_wq_submit_work()` chỉ kiểm tra cờ `IO_WQ_WORK_CANCEL` một lần trước khi gửi yêu cầu. Một lệnh hủy xuất hiện giữa chừng sẽ đánh dấu công việc, trả về `-EALREADY`, và tìm kiếm trong danh sách `->timeout_list` nhưng không thành công, trong khi worker sau đó thêm yêu cầu vào và bắt đầu bộ hẹn giờ:
io-wq worker io_try_cancel() io_wq_submit_work() IO_WQ_WORK_CANCEL chưa được đặt io_async_cancel_one() thiết lập IO_WQ_WORK_CANCEL = -EALREADY io_timeout_cancel() = -ENOENT io_timeout() thêm yêu cầu vào ->timeout_list hrtimer_start() = IOU_ISSUE_SKIP_COMPLETE
Không ai kiểm tra lại cờ này, và timeout sẽ chạy đến khi hết hạn. Khi thoát khỏi ring, `io_uring_try_cancel_requests()` hủy công việc của io-wq rồi sau đó chấm dứt các timeout theo cách tương tự, do đó một task đang thoát có thể bị treo trong toàn bộ thời gian tồn tại của timeout như vậy.
Hãy kiểm tra cờ dưới khóa `->timeout_lock`, mà lệnh tìm kiếm cũng sử dụng, và từ chối yêu cầu nếu cờ này đã được đặt. Nếu lệnh tìm kiếm diễn ra trước, thì cờ sẽ hiển thị rõ ràng. Nếu nó diễn ra sau đó, nó sẽ tìm thấy yêu cầu trên danh sách.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.