Skip to main content
CVE Vulnerability Database
Vulnerability Database/CVE-2026-43442

CVE-2026-43442: Linux Kernel Privilege Escalation Flaw

CVE-2026-43442 is a privilege escalation vulnerability in the Linux kernel's io_uring subsystem that allows unprivileged users to read memory beyond allocated bounds. This article covers technical details, impact, and mitigations.

Published:

CVE-2026-43442 Overview

CVE-2026-43442 is a Linux kernel vulnerability in the io_uring subsystem. The flaw involves an incorrect bounds check for 128-byte Submission Queue Entry (SQE) operations when IORING_SETUP_SQE_MIXED is used without IORING_SETUP_NO_SQARRAY. An unprivileged local user can remap a logical SQ position to an arbitrary physical SQE index, causing a 128-byte memcpy in io_uring_cmd_sqe_copy() to read 64 bytes past the end of the SQE array.

Critical Impact

A local unprivileged attacker can trigger an out-of-bounds read in kernel memory, leading to information disclosure or kernel crash conditions affecting system availability.

Affected Products

  • Linux kernel versions implementing IORING_SETUP_SQE_MIXED support in io_uring
  • Distributions shipping affected upstream kernels prior to the fix commits
  • Systems with io_uring enabled for unprivileged users

Discovery Timeline

  • 2026-05-08 - CVE-2026-43442 published to NVD
  • 2026-05-12 - Last updated in NVD database

Technical Details for CVE-2026-43442

Vulnerability Analysis

The vulnerability resides in io_init_req() within the Linux kernel io_uring subsystem. When a userspace application initializes an io_uring instance with IORING_SETUP_SQE_MIXED and the SQ array indirection enabled, the kernel must validate that 128-byte SQE operations do not cross the physical boundary of the SQE buffer.

The pre-patch check !(ctx->cached_sq_head & (ctx->sq_entries - 1)) validates the logical SQ head position. This assumes the logical position equals the physical SQE index, which only holds when IORING_SETUP_NO_SQARRAY is used. With the SQ array present, userspace controls the mapping from logical to physical indices.

A local attacker can set sq_array[N] = sq_entries - 1, directing a 128-byte SQE operation to the final physical slot. The subsequent memcpy in io_uring_cmd_sqe_copy() then reads 64 bytes beyond the allocated SQE array.

Root Cause

The boundary check operates on the logical SQ head index rather than the physical SQE index. This is a classic confusion between an attacker-controlled indirection layer and the underlying memory layout. Because sq_array is mapped to userspace and writable by the ring owner, the kernel cannot trust the logical-to-physical mapping when enforcing safety invariants.

Attack Vector

Exploitation requires local access and the ability to create an io_uring instance. The attacker creates a ring with IORING_SETUP_SQE_MIXED and without IORING_SETUP_NO_SQARRAY, populates sq_array so a 128-byte op maps to the last physical SQE index, then submits the operation. The resulting out-of-bounds read in io_uring_cmd_sqe_copy() exposes adjacent kernel memory to the request handler or destabilizes the kernel. The CVSS vector CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H reflects local exploitation by a low-privilege user with high confidentiality and availability impact.

No public proof-of-concept code has been released. See the upstream fix commits 1f794f9bed3e and 6f02c6b19603 for the corrected validation logic.

Detection Methods for CVE-2026-43442

Indicators of Compromise

  • Unexpected kernel oops, KASAN reports, or BUG: messages referencing io_uring_cmd_sqe_copy or io_init_req in dmesg
  • Processes creating io_uring instances with IORING_SETUP_SQE_MIXED flag from unprivileged contexts
  • Unusual ring configurations where sq_array entries are repeatedly set to high indices approaching sq_entries - 1

Detection Strategies

  • Audit io_uring_setup syscalls and flag invocations using IORING_SETUP_SQE_MIXED without IORING_SETUP_NO_SQARRAY
  • Enable kernel runtime memory safety tooling such as KASAN in test environments to catch out-of-bounds reads
  • Monitor kernel logs for crash signatures originating from the io_uring subsystem

Monitoring Recommendations

  • Collect and centralize auditd records for io_uring_setup, io_uring_enter, and io_uring_register syscalls
  • Track kernel ring buffer messages for KASAN, slab-out-of-bounds, or general protection faults tied to io_uring
  • Inventory hosts running kernels that include SQE_MIXED support to scope exposure

How to Mitigate CVE-2026-43442

Immediate Actions Required

  • Apply the upstream kernel patches referenced in the fix commits and rebuild or update affected kernels
  • Restrict io_uring to trusted users via kernel.io_uring_disabled sysctl where the workload allows
  • Identify hosts exposing io_uring to untrusted local users such as container workloads or multi-tenant systems and prioritize patching

Patch Information

The fix replaces the cached_sq_head alignment check with direct validation of the physical SQE index, correctly handling both sq_array and NO_SQARRAY configurations. Apply the upstream commits 1f794f9bed3e5cf7250a3b4daf112a72ed1513e9 and 6f02c6b196036dbb6defb4647d8707d29b7fe95b, or update to a distribution kernel that incorporates them.

Workarounds

  • Disable io_uring system-wide by setting kernel.io_uring_disabled=2 via sysctl where workloads do not require it
  • Use seccomp profiles or Landlock policies to block io_uring_setup for untrusted processes and containers
  • Limit container runtimes to seccomp defaults that deny io_uring syscalls until the patched kernel is deployed
bash
# Disable io_uring for all users until the patched kernel is deployed
echo 'kernel.io_uring_disabled = 2' | sudo tee /etc/sysctl.d/99-disable-io_uring.conf
sudo sysctl --system

# Verify the setting
sysctl kernel.io_uring_disabled

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Default Legacy - Prefooter | Experience the World’s Most Advanced Cybersecurity Platform

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.