CVE-2026-99255 in Linuxthông tin

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/io-wq: không che giấu một liên kết (link) khỏi các lệnh hủy bỏ

Một tiến trình khi thoát sẽ hủy bỏ các yêu cầu của nó và chờ cho đến khi chúng biến mất. Hàm io_uring_cancel_generic() tìm kiếm ở mọi nơi mà một yêu cầu có thể tồn tại, và ngủ nếu như không tìm thấy gì để hủy bỏ. Nó được đánh thức mỗi lần một trong các yêu cầu của tiến trình hoàn thành nhờ công việc của tiến trình (task work) hoặc bị giải phóng.

Khi io-wq xử lý xong một yêu cầu có liên kết, sẽ có khoảng thời gian mà yêu tiếp theo của liên kết đó không thể tìm thấy:

io_worker_handle_work() io_assign_current_work(worker, NULL) io_wq_free_work(work) io_req_find_next() // lấy liên kết ra khỏi yêu cầu io_free_req() // công việc tiến trình cho tiến trình io_assign_current_work(worker, linked) io_run_task_work() cond_resched() worker->cur_work = linked

Nó không ở trạng thái chờ (pending), không phải là công việc hiện tại của một worker, và cũng chưa nằm trên danh sách mà nó sắp được đặt vào. Nếu vòng lặp do tiến trình đang thoát thực hiện vì io_free_req() rơi vào khoảng thời gian đó, nó sẽ không tìm thấy gì và tiến trình đi vào trạng thái ngủ. Worker sau đó chạy liên kết (link), điều mà IO_WQ_BIT_EXIT không ngăn chặn đối với công việc có giới hạn (bounded work). Nếu yêu cầu này được đặt vào hàng chờ (parked) thì sẽ không có gì hoàn thành hoặc giải phóng, và không ai đánh thức tiến trình nữa. Nếu chính quá trình thoát ra, nó cũng không thể bị giết được nữa.

NOP, IOSQE_ASYNC | IOSQE_IO_LINK FUTEX_WAIT, FUTEX2_PRIVATE sự kiện thoát của luồng (thread) hoặc của quá trình (process), sau đó tối đa là 63us

Với bốn trường hợp như vậy trên mỗi vòng lặp, từ 5 đến 8 trong số 10.000 vòng lặp bị treo (4 CPU, KVM):

io_uring_cancel_generic do_exit

Commit f8b632e89a10 ("io_uring: tighten task exit cancellations") đề cập đến cùng một khoảng trống này và khiến tiến trình tìm lại bất kỳ điều gì xảy ra trước khi io_free_req().

Giải phóng yêu cầu ngay sau khi liên kết trở thành công việc hiện tại của worker, hoặc ở trạng thái chờ (pending). Bất cứ ai được đánh thức bởi hành động đó đều có thể tìm thấy liên kết cho đến khi nó được đặt vào hàng chờ nơi các lệnh hủy bỏ cũng sẽ tìm kiếm. Để làm điều này, hãy chia io_wq_free_work() thành hai phần riêng biệt.

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

chịu trách nhiệm

Linux

Đặt trước

25/09/2026

Tiết lộ

03/11/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

Want to know what is going to be exploited?

We predict KEV entries!