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.
Published: 2026-07-25
Score: n/a
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The Linux kernel’s io_uring work‑queue logic incorrectly takes a snapshot of the IO_WQ_BIT_EXIT flag only once before draining a chain of linked work items. When the exit flag is set after the first item has started, subsequent items in the chain continue to use a stale snapshot, ignoring the exit request. This stale state usage, combined with a race condition between the exit flag and the work queue processing, lets linked work items run to completion even after the kernel has begun exiting, potentially consuming resources or stalling the system. The flaw reflects a failure to properly recheck a flag within a loop, a weakness captured by CWE‑1050.

Affected Systems

All Linux kernel versions prior to the inclusion of commit 10dc95939817 are affected. Any active distribution that has not yet integrated this patch, regardless of release series, remains vulnerable. The flaw applies to the default io_uring implementation used by the kernel and thus affects all hosts running an unpatched kernel version.

Risk and Exploitability

The EPSS score of <1 % indicates a very low likelihood of exploitation in the wild, and the vulnerability is not listed in CISA’s KEV catalog. Based on the description, the likely attack vector is local or privileged: an attacker capable of submitting io_uring requests could craft a linked work chain, trigger IO_WQ_BIT_EXIT after the first item has begun, and cause the remaining work items to continue execution after the kernel has started to exit, leading to a denial‑of‑service condition such as a system stall or unchecked resource usage.

Generated by OpenCVE AI on August 5, 2026 at 01:40 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade the Linux kernel to a version that includes commit 10dc95939817 or newer.
  • If an official patch is unavailable, apply the patch directly from the Linux kernel git repository and rebuild the kernel.
  • Configure the system to block or disable io_uring usage for untrusted processes until the patch is applied (e.g., via SELinux policies or cgroup restrictions).

Generated by OpenCVE AI on August 5, 2026 at 01:40 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Debian DLA Debian DLA DLA-4717-1 linux security update
Debian DLA Debian DLA DLA-4720-1 linux security update
Debian DLA Debian DLA DLA-4723-1 linux-6.1 security update
Debian DLA Debian DLA DLA-4724-1 linux-6.12 new package
History

Wed, 05 Aug 2026 00:45:00 +0000

Type Values Removed Values Added
Weaknesses CWE-362

Thu, 30 Jul 2026 00:15:00 +0000


Tue, 28 Jul 2026 16:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-362

Sat, 25 Jul 2026 09:30:00 +0000

Type Values Removed Values Added
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.
Title io_uring/io-wq: re-check IO_WQ_BIT_EXIT for each linked work item
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-07-25T08:51:03.036Z

Reserved: 2026-07-19T15:36:31.787Z

Link: CVE-2026-64425

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Awaiting Analysis

Published: 2026-07-25T10:17:26.600

Modified: 2026-08-11T15:01:50.637

Link: CVE-2026-64425

cve-icon Redhat

Severity :

Publid Date: 2026-07-25T00:00:00Z

Links: CVE-2026-64425 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-08-05T01:45:04Z

Weaknesses
  • CWE-1050

    Excessive Platform Resource Consumption within a Loop