CVE-2026-99262 in Linux信息

摘要

由 VulDB • 2026-11-03

在 Linux 内核中,已修复以下漏洞:

io_uring/timeout: 防止因 io-wq 启动超时而导致取消操作丢失

由 io_wq 运行的 IORING_OP_TIMEOUT(由于 IOSQE_ASYNC)存在与 poll、futex 和 waitid 相同的问题。io_wq_submit_work() 仅在发出请求之前检查一次 IO_WQ_WORK_CANCEL。在此期间的取消会标记该工作,返回 -EALREADY,并徒劳地搜索 ->timeout_list,而随后工作者会将请求添加进去并开始计时器:

``` io-wq worker io_try_cancel() io_wq_submit_work() IO_WQ_WORK_CANCEL isn't set io_async_cancel_one() sets IO_WQ_WORK_CANCEL = -EALREADY io_timeout_cancel() = -ENOENT io_timeout() adds the request to ->timeout_list hrtimer_start() = IOU_ISSUE_SKIP_COMPLETE ```

没有人再次检查该标志,因此超时操作会正常完成。在 ring 退出时,io_uring_try_cancel_requests() 取消 io-wq 工作并以相同方式终止超时的处理,导致退出的任务可能会因此类超时的完整持续时间而被卡住。

应在 ->timeout_lock(搜索过程也使用此锁)下检查该标志,如果已设置则使请求失败。如果先进行搜索,则该标志可见;如果后进行检查,它会在列表中找到该请求。

If you want to get best quality of vulnerability data, you may have to visit VulDB.

来源

Do you want to use VulDB in your project?

Use the official API to access entries easily!