Skip to main content

Linux Kernel CVE-2025-40047

HIGH
2025-10-28 416baaa9-dc9f-4396-8d5f-8c081fb06d67
7.8
CVSS 3.1 · Vendor: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
Share

Severity by source

Vendor (416baaa9-dc9f-4396-8d5f-8c081fb06d67) PRIMARY
7.8 HIGH
AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
vuln.today AI
7.0 HIGH

Local unprivileged io_uring access gives PR:L and AV:L; exploitation hinges on winning a callback-vs-cancelation race, so AC:H; a double-callback on a stale entry yields full memory-corruption triad impact.

3.1 AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H
4.0 AV:L/AC:H/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
SUSE
4.7 MEDIUM
AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:H
Red Hat
7.8 MEDIUM
qualitative

Primary rating from Vendor (416baaa9-dc9f-4396-8d5f-8c081fb06d67).

CVSS VectorVendor: 416baaa9-dc9f-4396-8d5f-8c081fb06d67

Attack Vector
Local
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

2
Analysis Generated
Jul 30, 2026 - 07:53 vuln.today
CVE Published
Oct 28, 2025 - 12:15 cve.org
HIGH 7.8

DescriptionCVE.org

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

io_uring/waitid: always prune wait queue entry in io_waitid_wait()

For a successful return, always remove our entry from the wait queue entry list. Previously this was skipped if a cancelation was in progress, but this can race with another invocation of the wait queue entry callback.

AnalysisAI

Local privilege escalation risk in the Linux kernel's io_uring waitid handling stems from a race condition in io_waitid_wait(), where a successful return failed to prune the task's entry from the wait queue when a cancelation was concurrently in progress, allowing the wait queue callback to be invoked twice against a stale entry. Authenticated local attackers (PR:L per CVSS) could exploit this to corrupt kernel memory with high confidentiality, integrity, and availability impact (CVSS 7.8). This is fixed upstream; there is no public exploit identified at time of analysis and EPSS is low (0.20%).

Technical ContextAI

io_uring is the Linux kernel's high-performance asynchronous I/O interface, and the waitid opcode lets applications reap child process state changes asynchronously. Internally io_waitid_wait() registers a wait queue entry whose callback fires on a state change; the bug is that on a successful path the code previously skipped removing (pruning) that entry from the wait queue list if a cancelation was already underway. Because the entry remained linked, a second invocation of the wait queue entry callback could race with the cancelation path, operating on an entry that should have been unlinked. The underlying root cause class is a concurrency/race condition leading to use-after-free-style reuse of a wait queue entry (CWE-362 / CWE-416 in spirit; the feed lists CWE as N/A). The fix unconditionally prunes the entry on success so the callback cannot be reached twice.

Affected ProductsAI

The Linux kernel io_uring/waitid subsystem is affected. Exact vulnerable version ranges are not enumerated in the provided data; the three references are stable-tree fix commits (git.kernel.org/stable/c/2f8229d53d984c6a05b71ac9e9583d4354e3b91f, .../3e2205db2f0608898d535da1964e1b376aacfdaa, and .../696ba6032081e617564a8113a001b8d7943cb928), implying multiple stable branches received backports. Any kernel version that includes io_uring waitid support and predates these commits should be considered potentially affected until confirmed against a specific distribution kernel; no CPE strings were supplied in the input.

RemediationAI

Upstream fix available (PR/commit); released patched version not independently confirmed - apply the kernel update from your distribution that incorporates the stable commits referenced (git.kernel.org/stable/c/2f8229d53d984c6a05b71ac9e9583d4354e3b91f and the two sibling backports 3e2205db2f06... and 696ba6032081...), which unconditionally prune the wait queue entry on success. Because exact tagged release numbers are not provided, track your vendor's advisory (e.g., the corresponding stable release for your branch) and update to the first kernel build containing the fix. As a compensating control where patching must be deferred, restrict unprivileged io_uring usage: set the sysctl kernel.io_uring_disabled=2 to disable io_uring entirely (trade-off: breaks applications that depend on io_uring performance) or =1 to limit it to processes with CAP_SYS_ADMIN (trade-off: unprivileged workloads lose io_uring). On multi-tenant hosts, also limit local/untrusted user accounts, since exploitation requires local access.

Vendor StatusVendor

SUSE

Severity: Moderate
Product Status
Container suse/sl-micro/6.0/baremetal-os-container:latest Container suse/sl-micro/6.1/baremetal-os-container:latest Affected
Container suse/sl-micro/6.0/base-os-container:latest Container suse/sl-micro/6.0/kvm-os-container:latest Container suse/sl-micro/6.0/rt-os-container:latest Container suse/sl-micro/6.1/base-os-container:latest Container suse/sl-micro/6.1/kvm-os-container:latest Container suse/sl-micro/6.1/rt-os-container:latest Affected
Image SL-Micro-Azure Image SL-Micro-BYOS-Azure Image SL-Micro-BYOS-EC2 Image SL-Micro-BYOS-GCE Image SL-Micro-EC2 Image SLE-Micro Image SLE-Micro-Azure Image SLE-Micro-BYOS Image SLE-Micro-BYOS-Azure Image SLE-Micro-BYOS-EC2 Image SLE-Micro-BYOS-GCE Image SLE-Micro-EC2 Image SLE-Micro-GCE Image SUSE-Multi-Linux-Manager-Proxy-BYOS-Azure Image SUSE-Multi-Linux-Manager-Proxy-BYOS-EC2 Image SUSE-Multi-Linux-Manager-Proxy-BYOS-GCE Image SUSE-Multi-Linux-Manager-Server-Azure-llc Image SUSE-Multi-Linux-Manager-Server-Azure-ltd Image SUSE-Multi-Linux-Manager-Server-BYOS-Azure Image SUSE-Multi-Linux-Manager-Server-BYOS-EC2 Image SUSE-Multi-Linux-Manager-Server-BYOS-GCE Image SUSE-Multi-Linux-Manager-Server-EC2-llc Image SUSE-Multi-Linux-Manager-Server-EC2-ltd Affected
Image SLES-Azure-3P Image SLES-Azure-Basic Image SLES-Azure-Standard Image SLES-BYOS-Azure Image SLES-BYOS-EC2 Image SLES-BYOS-GCE Image SLES-CHOST-BYOS-Aliyun Image SLES-CHOST-BYOS-Azure Image SLES-CHOST-BYOS-EC2 Image SLES-CHOST-BYOS-GCE Image SLES-CHOST-BYOS-GDC Image SLES-CHOST-BYOS-SAP-CCloud Image SLES-EC2 Image SLES-EC2-ECS Image SLES-GCE Image SLES-GCE-3P Image SLES-Hardened-BYOS-Azure Image SLES-Hardened-BYOS-EC2 Image SLES-Hardened-BYOS-GCE Image SLES-SAPCAL-Azure Image SLES-SAPCAL-EC2 Image SLES-SAPCAL-GCE Affected
Image SLES-SAP-Azure Image SLES-SAP-Azure-3P Image SLES-SAP-BYOS-Azure Image SLES-SAP-BYOS-EC2 Image SLES-SAP-BYOS-GCE Image SLES-SAP-EC2 Image SLES-SAP-GCE Image SLES-SAP-GCE-3P Affected

Share

CVE-2025-40047 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy