CVE-2026-81010: io_uring/waitid: honor task_work cancellation
In the Linux kernel, the following vulnerability has been resolved:
iouring/waitid: honor taskwork cancellation
iowaitidcb() may run through the fallback taskwork path when taskworkadd() can no longer queue work to the originating task. The fallback runs from a kworker and iouring marks such task work as canceled through tw.cancel.
iowaitidcb() currently ignores tw.cancel and calls dowait(). waitid is task-context dependent: dowait() performs child lookup relative to current, and the retry path also uses current->signal->waitchldexit. If the callback runs from the fallback kworker, current is therefore not the task that submitted the request.
Honor tw.cancel before entering dowait(). Complete the request with -ECANCELED and skip the siginfo copy, since canceled task work may run without the submitting task's userspace execution context.
Keep the existing siginfo handling for normal waitid completion and explicit cancellation.
Affected Software
Event History
Frequently Asked Questions
How are requests handled after the fix when task work has been canceled and executes through the fallback path?
The request is completed with -ECANCELED before __do_wait() is entered. Siginfo is not copied for that canceled fallback execution.
Does this change siginfo handling for ordinary waitid completions?
No. Existing siginfo handling is retained for normal waitid completion and explicit cancellation.