Live › vulnerability › CVE-2026-99096
Go to dashboardA task restricted from certain io_uring register opcodes can create a disabled ring, issue any register opcode on it, then enable it, bypassing the restriction. The fix makes disabled rings that inherit task restrictions keep enforcing them.
Summary written from the sources below. Check the originals before acting.
First seen by InfraStack 2026-10-26 16:02 UTC. All times on this page are UTC.
Systems running a Linux kernel with io_uring, where a process has per-task io_uring register restrictions applied (for example sandboxed or container workloads that restrict io_uring opcodes). Hosts that do not restrict io_uring register opcodes are not meaningfully exposed by this flaw. The sources do not say which kernel versions are affected.
No product ranges from the sources yet.
Each row is the first time that source carried this signal. The analyst’s rows are its own findings.
In the Linux kernel, the following vulnerability has been resolved:
io_uring/register: don't exempt disabled rings from task restrictions
A ring created with IORING_SETUP_R_DISABLED is exempt from its register restrictions until it is enabled. This lets the creator register the restrictions and then enable the ring with IORING_REGISTER_ENABLE_RINGS, whether or not that opcode is in the allowed set.
Since commit ed82f35b926b ("io_uring: allow registration of per-task restrictions"), a ring also inherits restrictions from the task that creates it, and the same exemption applies to those. A task whose register opcodes are restricted can therefore create a disabled ring, issue any register opcode on it, and then enable it.
Mark rings whose restrictions were inherited from the task, and keep checking register opcodes for them while the ring is disabled. Enabling such a ring now requires IORING_REGISTER_ENABLE_RINGS to be in the task's allowed set. Per-ring restrictions registered on a disabled ring work as before.
[axboe: amend with inheritance flag fixup]
This page as .md · .json · in your agent: get_signal("CVE-2026-99096")
NVD data is provided by NIST and is public domain. Posts quoted belong to their authors.