Description
In the Linux kernel, the following vulnerability has been resolved:

io_uring/openclose: keep the lock in io_pipe_fixed()

io_pipe_fixed() installs both ends of the pipe in the fixed file table,
drops ->uring_lock, and copies the slot numbers to the application. If
that faults, it takes the lock again and removes whatever is in these
slots.

If the request is run by io-wq the lock really is dropped in between, and
the slots are visible to everybody else. By the time the error path gets
to them, they may have been closed and reused, by IORING_OP_CLOSE and a
direct open or accept, or by IORING_REGISTER_FILES_UPDATE. Then a file is
removed from the table that has nothing to do with the failed request.

Do the copy with the lock held. Faulting in user memory under
->uring_lock is fine, the registration paths do it all the time.
Published: 2026-11-03
Score: n/a
EPSS: n/a
KEV: No
Impact: Race condition causing unintended removal of unrelated file table entries
Action: Apply patch
AI Analysis

Impact

During the installation of both ends of a pipe in the fixed file table, the io_pipe_fixed function releases the uring lock. If the handling of the slot numbers faults, the function reacquires the lock and removes whatever is in these slots. Because the lock was dropped, other io_uring requests can close or reuse the slots in the meantime. The flaw allows an attacker to trigger a race that results in the removal of unrelated file descriptors, leading to application crashes, data loss, or denial‑of‑service conditions. The weakness is a classic concurrency race that violates atomicity of shared data structures.

Affected Systems

All Linux kernel releases that include the io_uring subsystem and the buggy io_pipe_fixed implementation are affected. The exact kernel versions are not listed in the advisory, so any deployment with io_uring support until the patch is applied is potentially vulnerable.

Risk and Exploitability

The advisory does not provide a CVSS score or EPSS value. The vulnerability is not currently listed in the CISA KEV catalog, suggesting no publicly known exploits yet. Attackers would likely need local or elevated privileges to orchestrate the concurrent io_uring operations required to trigger the race, but the lack of a lock makes exploitation comparatively easier than with a fully serialized implementation. Given the potential for arbitrary descriptor loss and subsequent denial of service, the risk is considered high for systems exposing io_uring APIs.

Generated by OpenCVE AI on November 3, 2026 at 13:27 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Apply the kernel patch that retains the uring lock in io_pipe_fixed, which is present in the commits referenced in the advisory
  • Upgrade the Linux kernel to a version that includes the corrected io_pipe_fixed implementation
  • If a patch is unavailable, disable or restrict the io_uring API in the affected applications to prevent concurrent pipe installs

Generated by OpenCVE AI on November 3, 2026 at 13:27 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Tue, 03 Nov 2026 14:15:00 +0000

Type Values Removed Values Added
First Time appeared Linux linux
Vendors & Products Linux linux

Tue, 03 Nov 2026 13:45:00 +0000

Type Values Removed Values Added
Weaknesses CWE-362

Tue, 03 Nov 2026 12:00:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: io_uring/openclose: keep the lock in io_pipe_fixed() io_pipe_fixed() installs both ends of the pipe in the fixed file table, drops ->uring_lock, and copies the slot numbers to the application. If that faults, it takes the lock again and removes whatever is in these slots. If the request is run by io-wq the lock really is dropped in between, and the slots are visible to everybody else. By the time the error path gets to them, they may have been closed and reused, by IORING_OP_CLOSE and a direct open or accept, or by IORING_REGISTER_FILES_UPDATE. Then a file is removed from the table that has nothing to do with the failed request. Do the copy with the lock held. Faulting in user memory under ->uring_lock is fine, the registration paths do it all the time.
Title io_uring/openclose: keep the lock in io_pipe_fixed()
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 Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-11-03T11:48:16.602Z

Reserved: 2026-09-25T10:25:14.404Z

Link: CVE-2026-99265

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-11-03T12:17:33.627

Modified: 2026-11-03T12:17:33.627

Link: CVE-2026-99265

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-11-03T14:00:18Z

Weaknesses
  • CWE-362

    Concurrent Execution using Shared Resource with Improper Synchronization ('Race Condition')