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

io_uring: fix physical SQE bounds check for SQE_MIXED 128-byte ops

When IORING_SETUP_SQE_MIXED is used without IORING_SETUP_NO_SQARRAY,
the boundary check for 128-byte SQE operations in io_init_req()
validated the logical SQ head position rather than the physical SQE
index.

The existing check:

!(ctx->cached_sq_head & (ctx->sq_entries - 1))

ensures the logical position isn't at the end of the ring, which is
correct for NO_SQARRAY rings where physical == logical. However, when
sq_array is present, an unprivileged user can remap any logical
position to an arbitrary physical index via sq_array. Setting
sq_array[N] = sq_entries - 1 places a 128-byte operation at the last
physical SQE slot, causing the 128-byte memcpy in
io_uring_cmd_sqe_copy() to read 64 bytes past the end of the SQE
array.

Replace the cached_sq_head alignment check with a direct validation
of the physical SQE index, which correctly handles both sq_array and
NO_SQARRAY cases.
Published: 2026-05-08
Score: 7.1 High
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

An out‑of‑bounds read occurs in the Linux kernel’s io_uring implementation. When the IORING_SETUP_SQE_MIXED flag is enabled without IORING_SETUP_NO_SQARRAY, a bounds check that was meant to guard a 128‑byte SQE operation validates the logical queue head instead of the physical SQE index. The sq_array interface lets an unprivileged user map a logical position to any physical slot, so setting sq_array[N] to the last physical entry causes the 128‑byte memcpy in io_uring_cmd_sqe_copy() to read 64 bytes beyond the end of the SQE array. Based on the description, it is inferred that this over‑read could disclose adjacent kernel memory contents, but the original text does not confirm a direct privilege escalation or code execution capability.

Affected Systems

All Linux kernels that implement io_uring and allow the IORING_SETUP_SQE_MIXED flag without IORING_SETUP_NO_SQARRAY are affected. The vulnerability is present in the generic linux_kernel releases and specifically in the 7.0 release candidates (rc1, rc2, rc3) until the commit that replaces the improper bounds check is merged. Distributions packaging kernel versions prior to this commit, regardless of patch level, remain vulnerable unless the kernel is rebuilt or the feature is disabled.

Risk and Exploitability

The CVSS score of 7.1 indicates a high severity impact, while the EPSS score of less than 1 % signals a very low probability that this flaw will be actively exploited. The vulnerability is not listed in CISA’s KEV catalog. The likely attack vector is local: an attacker only needs the ability to create an io_uring instance with the SQE_MIXED flag and manipulate the sq_array entries, a capability available to unprivileged users by default. Based on the description, it is inferred that the exploit allows an out‑of‑bounds read of kernel memory but does not directly provide elevation of privilege or arbitrary code execution; however, the leaked data could assist in a combination attack.

Generated by OpenCVE AI on May 21, 2026 at 19:36 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade the kernel to a version that includes the commit that corrects the SQE bounds check (e.g., commits 1f794f9 or 6f02c6b).
  • Rebuild or configure the kernel to disable sq_array support by avoiding the IORING_SETUP_SQE_MIXED flag or disabling CONFIG_IO_URING_SQ_ARRAY.
  • Apply a mandatory access control policy such as SELinux or AppArmor to restrict unprivileged users from creating io_uring instances with the IORING_SETUP_SQE_MIXED flag until the kernel is updated.

Generated by OpenCVE AI on May 21, 2026 at 19:36 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Thu, 21 May 2026 17:15:00 +0000

Type Values Removed Values Added
Weaknesses NVD-CWE-noinfo
CPEs cpe:2.3:o:linux:linux_kernel:7.0:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.0:rc2:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.0:rc3:*:*:*:*:*:*

Mon, 11 May 2026 07:45:00 +0000

Type Values Removed Values Added
Metrics cvssV3_1

{'score': 7.1, 'vector': 'CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H'}


Sat, 09 May 2026 14:45:00 +0000

Type Values Removed Values Added
Weaknesses CWE-127

Sat, 09 May 2026 12:15:00 +0000


Fri, 08 May 2026 18:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-127

Fri, 08 May 2026 14:45:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: io_uring: fix physical SQE bounds check for SQE_MIXED 128-byte ops When IORING_SETUP_SQE_MIXED is used without IORING_SETUP_NO_SQARRAY, the boundary check for 128-byte SQE operations in io_init_req() validated the logical SQ head position rather than the physical SQE index. The existing check: !(ctx->cached_sq_head & (ctx->sq_entries - 1)) ensures the logical position isn't at the end of the ring, which is correct for NO_SQARRAY rings where physical == logical. However, when sq_array is present, an unprivileged user can remap any logical position to an arbitrary physical index via sq_array. Setting sq_array[N] = sq_entries - 1 places a 128-byte operation at the last physical SQE slot, causing the 128-byte memcpy in io_uring_cmd_sqe_copy() to read 64 bytes past the end of the SQE array. Replace the cached_sq_head alignment check with a direct validation of the physical SQE index, which correctly handles both sq_array and NO_SQARRAY cases.
Title io_uring: fix physical SQE bounds check for SQE_MIXED 128-byte ops
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-05-11T22:24:40.205Z

Reserved: 2026-05-01T14:12:56.009Z

Link: CVE-2026-43442

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Analyzed

Published: 2026-05-08T15:16:56.663

Modified: 2026-05-21T17:10:51.703

Link: CVE-2026-43442

cve-icon Redhat

Severity :

Publid Date: 2026-05-08T00:00:00Z

Links: CVE-2026-43442 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-05-21T19:45:17Z

Weaknesses