CVE-2026-99130
Received Received - Intake

Race Condition in Linux Kernel io_uring Subsystem

Vulnerability report for CVE-2026-99130, including description, CVSS score, EPSS score, affected products, exploitability, helpful resources, and attack-flow context.

Publication date: 2026-10-28

Last updated on: 2026-10-28

Assigner: kernel.org

Description

In the Linux kernel, the following vulnerability has been resolved: io_uring/cancel: don't spin on local work the task can't run io_uring_cancel_generic() refuses to sleep while any ring on the exiting task's tctx has local work pending. It assumes the task is that ring's submitter and that the next io_uring_try_cancel_requests() pass will run the work. This does not hold for a ring that was still IORING_SETUP_R_DISABLED when the task got its tctx node from io_uring_create() or io_ringfd_register(). The submitter is set later by IORING_REGISTER_ENABLE_RINGS, possibly from another task, and only the submitter may run local work on an IORING_SETUP_DEFER_TASKRUN ring. To the exiting task the work stays pending forever, the loop never reaches schedule(), and the task trips the WARN_ON_ONCE() once and then spins in do_exit(). An unprivileged user can set this up at will by creating a disabled ring, having a child enable it and stop, posting to the ring with IORING_OP_MSG_RING and exiting with a request in flight that only the child can complete. The exiting thread burns a CPU until the child runs or dies, and with panic_on_warn set the WARN panics the kernel. Fix by skipping the sleep only when io_allowed_defer_tw_run() allows the task to run the work. This is reasonable since work it cannot run cannot complete any of its requests either, so nothing is lost by sleeping. Drop the WARN_ON_ONCE() since handing a disabled ring to another thread is a supported scenario, not a bug state.

CVSS Scores

EPSS Scores

Probability:
Percentile:

Meta Information

Published
2026-10-28
Last Modified
2026-10-28
Generated
2026-10-28
AI Q&A
2026-10-28
EPSS Evaluated
N/A
NVD
EUVD

Affected Vendors & Products

Showing 4 associated CPEs
Vendor Product Version / Range
Linux Linux 360cd42c4e95ff06d8d7b0a54e42236c7e7c187f
Linux Linux 360cd42c4e95ff06d8d7b0a54e42236c7e7c187f
Linux Linux 360cd42c4e95ff06d8d7b0a54e42236c7e7c187f
Linux Linux 6.4

Helpful Resources

Exploitability

CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-UNKNOWN

Attack-Flow Graph

AI Quick Actions

Instant insights powered by AI
Executive Summary

This vulnerability in the Linux kernel involves a flaw in the io_uring subsystem where a task exiting the system may spin indefinitely instead of completing. It occurs when a disabled io_uring ring is passed to another thread, causing local work to remain pending forever. The exiting task cannot run the work and triggers a warning before spinning in an infinite loop.

Detection Guidance

This vulnerability is specific to the Linux kernel's io_uring subsystem and requires kernel-level detection. There are no standard network or system commands to directly detect this issue. Monitoring for excessive CPU usage by processes using io_uring or kernel warnings related to io_uring may indicate exploitation attempts.

Impact Analysis

An unprivileged user could exploit this to cause a denial of service by forcing a CPU to spin indefinitely, potentially leading to system slowdowns or crashes. If panic_on_warn is enabled, the system may panic and reboot.

Mitigation Strategies

Apply the latest kernel patches that address this vulnerability. Disable io_uring if not required by setting kernel parameters or using security modules. Monitor kernel logs for WARN_ON_ONCE() messages related to io_uring.

Chat Assistant

Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-99130. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70

EPSS Chart