Read the docs
TI-2026-84217 Aliases CVE-2026-99255GHSA-v9jm-vmfj-9vh2

Race in Linux io_uring io-wq lets exiting tasks hang

Priority LOW 22Published · Updated

Key facts

Attack vector
—
Privileges required
—
User interaction
—
Attack complexity
—
Impact type
—
Confidentiality · integrity · availability
—
Fix status
Partial Red Hat: 4 without a fix

No CVSS vector from any source. Fix status from CNA and Red Hat.

Summary

In the Linux kernel io_uring io-wq worker, a finished request is freed while its linked next request is hidden from cancellation. A task that exits can then sleep without any wake-up, so it hangs and may not be killable. The flaw affects Linux kernel code from version 5.5 until the fixed releases listed in the solution.

Written with Claude Haiku 5.5 from the sources below · 2026-11-06

Description from the CNA

In the Linux kernel, the following vulnerability has been resolved: io_uring/io-wq: don't hide a link from cancellations A task that exits cancels its tracked requests and waits until they are gone. io_uring_cancel_generic() looks everywhere a request can be, and goes to sleep if it found nothing to cancel. It is woken up each time one of the requests of the task is completed by task work or freed. When io-wq is done with a request that has a link, there is a time in which the next request of the link can't be found: io_worker_handle_work() io_assign_current_work(worker, NULL) io_wq_free_work(work) io_req_find_next() // takes the link off the request io_free_req() // task work for the task io_assign_current_work(worker, linked) io_run_task_work() cond_resched() worker->cur_work = linked It is not pending, it is not the current work of a worker, and it is not yet on the list that it is about to be parked on. If the pass that the exiting task makes because of io_free_req() falls into that time, it finds nothing and the task goes to sleep. The worker then runs the link, which IO_WQ_BIT_EXIT doesn't prevent for bounded work. If that parks the request nothing is completed or freed, and nobody wakes up the task. If it is the process that exits it can't be killed any more either. NOP, IOSQE_ASYNC | IOSQE_IO_LINK FUTEX_WAIT, FUTEX2_PRIVATE exit of the thread, or of the process, up to 63us later With four of these per round 5 to 8 of 10,000 rounds hang (4 CPUs, KVM): io_uring_cancel_generic do_exit Commit f8b632e89a10 ("io_uring: tighten task exit cancellations") is about the same gap, and makes the task look again for whatever happens before io_free_req(). Free the request once the link is the current work of the worker, or pending. Whoever is woken up by that can find the link, until it is parked where cancellations look as well. To do so split io_wq_free_work() in two.

Why it matters now

EPSS 0.00197 9th percentileScored 2026-11-07
Fix Partial Linux (Linux): 6.1.191, 6.6.161, 6.12.115 +4Red Hat: 4 without a fix

SSVC decision points

Not available: CISA has not published SSVC decision points for this record.

Affected products

VendorProductAffected versionsFixed inStatusSource
LinuxLinux5.5 and later6.1.191, 6.6.161, 6.12.115, 6.18.60, 7.2.14, 7.3.2, 7.4-rc1Patch availableCNA
  • Linux VendorLinux Affected 5.5 and later Fixed in 6.1.191, 6.6.161, 6.12.115, 6.18.60, 7.2.14, 7.3.2, 7.4-rc1 Patch available CNA

CPE names Threatist (inferred) · 1

Inferred from how NVD named this product before; not given by a source.

CPEVersionsRoleVendor
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*——Linux
  • cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* Versions — — ·Linux

Remediation

Update the Linux kernel to 6.1.191, 6.6.161, 6.12.115, 6.18.60, 7.2.14, 7.3.2 or 7.4-rc1. Red Hat lists Red Hat Enterprise Linux 9 and 10 and Red Hat OpenShift Container Platform 4 and 5 as affected with plan none_available.

Written with Claude Haiku 5.5 from the sources below · 2026-11-06

  • Fix · CNA Linux (Linux) Fixed in 6.1.191, 6.6.161, 6.12.115, 6.18.60, 7.2.14, 7.3.2, 7.4-rc1

Vendor assessments

Red Hat

Red Hat rating: Moderate. Red Hat's page for this CVE →

ProductStatusPlan or fix
Red Hat Enterprise Linux 10AffectedNo fix yet: Fix deferred
Red Hat Enterprise Linux 9AffectedNo fix yet: Fix deferred
Red Hat OpenShift Container Platform 4AffectedNo fix yet: Fix deferred
Red Hat OpenShift Container Platform 5AffectedNo fix yet: Fix deferred
Not affected: 4 products
  • Red Hat Enterprise Linux 6
  • Red Hat Enterprise Linux 7
  • Red Hat Enterprise Linux 8
  • Red Hat OpenShift Container Platform 4

Timeline

  1. 2026-11-03 Threatist record created from CVE-2026-99255
  2. 2026-11-03 Alias added: GHSA-v9jm-vmfj-9vh2
  3. 2026-11-03 Fix available: Linux/Linux@436d48a2ed13112d2d27085325838e5bce6b4507, Linux/[email protected] · CNA
  4. 2026-11-03 1 new reference · CNA
  5. 2026-11-04 Affected versions changed · Red Hat
  6. 2026-11-04 CVSS score added · Red Hat
  7. 2026-11-06 Fix available: Linux/Linux@59e45f44c3cea9f4b2d099171c3cec1d25c5b638, Linux/[email protected] · CNA
  8. 2026-11-06 1 new reference · CNA

References

  • TI-2025-26358 tls: fix handling of zero-length records on the rx_list KEVCVSS 3.1CRITICAL 9.8
  • TI-2026-38352 netfilter: bridge: make ebt_snat ARP rewrite writable KEVCVSS 3.1HIGH 8.8
  • TI-2021-02452 Incorrect authorization in Ubuntu linux kernel KEVCVSS 3.1HIGH 8.8
  • TI-2013-05264 The (1) get_user and (2) put_user API functions in the Linux kernel before 3.5.5 on the… KEVCVSS 3.1HIGH 8.8
  • TI-2022-00125 Integer overflow in kernel KEVCVSS 3.1HIGH 8.4
  • TI-2013-01864 The perf_swevent_init function in kernel/events/core.c in the Linux kernel before 3.8.9… KEVCVSS 3.1HIGH 8.4
See all 21741 →

Sources