CVE-2026-64425: io_uring/io-wq: re-check IO_WQ_BIT_EXIT for each linked work item
Greg Kroah-Hartman <[email protected]> Sat, 25 Jul 2026 10:50:42 +0200
| Newsgroups | org.kernel.vger.linux-cve-announce |
|---|---|
| Message-ID | <2026072535-CVE-2026-64425-5940@gregkh> |
From: Greg Kroah-Hartman <[email protected]> Description =========== In the Linux kernel, the following vulnerability has been resolved: io_uring/io-wq: re-check IO_WQ_BIT_EXIT for each linked work item commit 10dc95939817 ("io_uring/io-wq: check IO_WQ_BIT_EXIT inside work run loop") fixed the obvious case where io_worker_handle_work() took one exit-bit snapshot before draining pending work, but the fix stops one level too early. io_worker_handle_work() now re-checks IO_WQ_BIT_EXIT in its outer work run loop, yet it still snapshots that bit once before processing a whole dependent linked-work chain. If io_wq_exit_start() sets IO_WQ_BIT_EXIT after the first linked item has started, the remaining linked items can still reuse stale do_kill = false, skip IO_WQ_WORK_CANCEL, and continue running after exit has begun. Move the check further inside, so it covers linked items too. Note: this is a syzbot special as it loves setting up tons of slow linked work on weird devices like msr that take forever to read, and immediately close the ring. Exit then takes a long time. The Linux kernel CVE team has assigned CVE-2026-64425 to this issue. Affected and fixed versions =========================== Issue introduced in 5.10.253 with commit 065dd936195a3466b8ebe5f9287400987ee3c063 and fixed in 5.10.261 with commit 14b7ecad2ec56699325180a744f4b19f046401bb Issue introduced in 5.15.203 with commit 27e47500fac23d15b7dc93ff650bc4844d2581bd and fixed in 5.15.212 with commit d179533c610e1b4c6aa436e3c1fd1b719d2c727c Issue introduced in 6.1.167 with commit d05d99573f81a091547b1778b9a50120f5d6c68a and fixed in 6.1.178 with commit 6e2f51f3e06773c2ee98ad09738f0908b48f76f9 Issue introduced in 6.6.122 with commit 85eb83694a91c89d9abe615d717c0053c3efa714 and fixed in 6.6.145 with commit ea61b04e1d7242cb37f5ed2cc91cf21a493f6597 Issue introduced in 6.12.68 with commit 2e8ca1078b14142db2ce51cbd18ff9971560046b and fixed in 6.12.96 with commit b6f179a653a934736c88d820fe0098c3c2532549 Issue introduced in 6.18.8 with commit bdf0bf73006ea8af9327cdb85cfdff4c23a5f966 and fixed in 6.18.39 with commit 1636d85dc139b07c0449308f2bb5e0c7a2e0da99 Issue introduced in 6.19 with commit 10dc959398175736e495f71c771f8641e1ca1907 and fixed in 7.1.4 with commit ab85765cbe3258b43dc6729af0e6ce3a87a133d8 Issue introduced in 6.19 with commit 10dc959398175736e495f71c771f8641e1ca1907 and fixed in 7.2-rc1 with commit 29bef9934b2521f787bb15dd1985d4c0d12ae02a Please see https://www.kernel.org for a full list of currently supported kernel versions by the kernel community. Unaffected versions might change over time as fixes are backported to older supported kernel versions. The official CVE entry at https://cve.org/CVERecord/?id=CVE-2026-64425 will be updated if fixes are backported, please check that for the most up to date information about this issue. Affected files ============== The file(s) affected by this issue are: io_uring/io-wq.c Mitigation ========== The Linux kernel CVE team recommends that you update to the latest stable kernel version for this, and many other bugfixes. Individual changes are never tested alone, but rather are part of a larger kernel release. Cherry-picking individual commits is not recommended or supported by the Linux kernel community at all. If however, updating to the latest release is impossible, the individual changes to resolve this issue can be found at these commits: https://git.kernel.org/stable/c/14b7ecad2ec56699325180a744f4b19f046401bb https://git.kernel.org/stable/c/d179533c610e1b4c6aa436e3c1fd1b719d2c727c https://git.kernel.org/stable/c/6e2f51f3e06773c2ee98ad09738f0908b48f76f9 https://git.kernel.org/stable/c/ea61b04e1d7242cb37f5ed2cc91cf21a493f6597 https://git.kernel.org/stable/c/b6f179a653a934736c88d820fe0098c3c2532549 https://git.kernel.org/stable/c/1636d85dc139b07c0449308f2bb5e0c7a2e0da99 https://git.kernel.org/stable/c/ab85765cbe3258b43dc6729af0e6ce3a87a133d8 https://git.kernel.org/stable/c/29bef9934b2521f787bb15dd1985d4c0d12ae02a