Vulnocalypse
Back to feed
21Track

io_uring/io-wq: check IO_WQ_BIT_EXIT inside work run loop

Linux kernel · CVE-2026-23113
0 news outlets0 CERTs and agencies0 researchers

Assessment: Track

SSVC decision points: exploitation none, automatable no, technical impact partial, deployment high.

What is it?

In the Linux kernel, the following vulnerability has been resolved: io_uring/io-wq: check IO_WQ_BIT_EXIT inside work run loop Currently this is checked before running the pending work. Normally this is quite fine, as work items either end up blocking (which will create a new worker for other items), or they complete fairly quickly. But syzbot reports an issue where io-wq takes seemingly forever to exit, and with a bit of debugging, this turns out to be because it queues a bunch of big (2GB - 4096b) reads with a /dev/msr* file. Since this file type doesn't support ->read_iter(), loop_rw_iter() ends up handling them. Each read returns 16MB of data read, which takes 20 (!!) seconds. With a bunch of these pending, processing the whole chain can take a long time. Easily longer than the syzbot uninterruptible sleep timeout of 140 seconds. This then triggers a complaint off the io-wq exit path: INFO: task syz.4.135:6326 blocked for more than 143 seconds. Not tainted syzkaller #0 Blocked by coredump. "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. task:syz.4.135 state:D stack:26824 pid:6326 tgid:6324 ppid:5957 task_flags:0x400548 flags:0x0

Evidence

No coverage recorded yet.

Exploitation

  • Public proof of concept
  • Exploited in the wild
  • Listed as known exploited
CVSS
Not scored
EPSS
0.1%
First seen
11 h ago
Status
corroborated

All Linux vulnerabilities