Nixpkgs security tracker

Try the new UI
Login with GitHub
⚠️ You are using a production deployment that is still only suitable for demo purposes. Any work done in this might be wiped later without notice.

Suggestion detail

Dismissed
(max. allowed matches exceeded)
created 1 week, 5 days ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
io_uring: defer eventfd signaling when queued from a wakeup handler

In the Linux kernel, the following vulnerability has been resolved: io_uring: defer eventfd signaling when queued from a wakeup handler io_req_local_work_add() signals the CQ ring eventfd inline when it is the one to push the first entry onto ->work_list. For DEFER_TASKRUN rings that add is frequently done from a waitqueue wakeup handler, where an arbitrary waitqueue lock is held. eventfd_signal_mask() only refuses to recurse when current->in_eventfd is set, but that bit is set by eventfd_signal_mask() itself. If the wake chain starts somewhere else, signal goes out inline and can feed back into epoll. Add IOU_F_TWQ_IN_WAKE, set it on the task_work add done from the three waitqueue callbacks, and use it to force io_eventfd_signal() down the existing call_rcu_hurry() deferral instead of signaling inline.

Affected products

Linux
  • =<6.18.*
  • <b6bb334b0e9348887e3e55e1f494b0c3b8fbf59f
  • <40b6ccf68731809ceb85c6e9f0f8f2ed61c7aa5a
  • =<7.2.*
  • =<*
  • ==6.1
  • =<7.1.*
  • <6.1
  • <e22f4494cc9487d326e5e3067f33dea7c1e442b2
  • <cd305ee3633a45fcf5f3a5d83f99f3cb77d87b6e