CVE-2025-39816
Medium · 5.5CVSS
5.5
EPSS
0.1%
Published
Sep 16, 2025
CISA due date
—
Cloudanix analysis
A Linux kernel issue could let a local user cause crashes or slowdowns by changing data while the system is reading it for fast input and output operations.
- Exploitation
- Local Privilege
- Attacker needs
- Low Privilege
- Complexity
- Low
- Impact
- Denial Of Service
- Component
- OS kernel
- Class
- Race Condition
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Race condition in io_uring/kbuf where direct reads of user-mapped buffer lengths can observe inconsistent or changing values instead of stable READ_ONCE() snapshots, allowing zero-length buffers to affect incremental commit loops.
Why it matters to the business
Local denial of service or kernel instability on Linux systems performing high-volume I/O with io_uring, affecting containerized workloads and downstream packages with low but present exploitation interest from listed actors.
How an attack unfolds
Attacker maps buffers from userspace into an io_uring ring, races length modifications between kernel checks and commits, and forces the incremental commit loop to encounter a zero-sized buffer that halts progress or triggers inconsistent state handling.
How to fix it
Update affected Linux kernel to commit 695673eb5711ee5eb1769481cf1503714716a7d1; for listed Debian webfs packages upgrade to version 1.20.
How to confirm the fix worked
Confirm presence of READ_ONCE() on buffer length reads and zero-length early exit in io_uring/kbuf commit logic; test ring operations with concurrent length changes.
Typical attack path
- Map user-provided buffers into io_uring ring
- Concurrently alter buffer lengths after initial kernel read
- Trigger ring operations that perform incremental commits
- Observe kernel path hitting zero-length buffer condition
How to detect it
Review kernel logs and audit trails for io_uring buffer length inconsistencies or commit loop anomalies; correlate with process activity using ring buffers.
What your security team should do
- Apply fixed kernel versions or Debian webfs 1.20 packages within 30 days
- Audit workloads using io_uring for exposure
- Monitor kernel logs for related buffer handling anomalies
The record
In the Linux kernel, the following vulnerability has been resolved: io_uring/kbuf: always use READ_ONCE() to read ring provided buffer lengths Since the buffers are mapped from userspace, it is prudent to use READ_ONCE() to read the value into a local variable, and use that for any other actions taken. Having a stable read of the buffer length avoids worrying about it changing after checking, or being read multiple times. Similarly, the buffer may well change in between it being picked and being committed. Ensure the looping for incremental ring buffer commit stops if it hits a zero sized buffer, as no further progress can be made at that point.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Debian:13 | linux | 0 | No fix |
| Debian:14 | linux | 0 | 6.16.5-1 |
| Linux | Kernel | 6.12.0 | 6.12.49 |
| SUSE:Linux Enterprise Live Patching 15 SP7 | kernel-livepatch-SLE15-SP7-RT_Update_5 | 0 | 1-150700.1.3.1 |
| SUSE:Real Time Module 15 SP7 | kernel-rt | 0 | 6.4.0-150700.7.19.1 |
| SUSE:Real Time Module 15 SP7 | kernel-source-rt | 0 | 6.4.0-150700.7.19.1 |
| SUSE:Real Time Module 15 SP7 | kernel-syms-rt | 0 | 6.4.0-150700.7.19.1 |
| openSUSE:Leap 16.0 | dtb-aarch64 | 0 | 6.12.0-160000.6.1 |
| openSUSE:Leap 16.0 | kernel-64kb | 0 | 6.12.0-160000.6.1 |
| openSUSE:Leap 16.0 | kernel-default | 0 | 6.12.0-160000.6.1 |
| openSUSE:Leap 16.0 | kernel-default-base | 0 | 6.12.0-160000.6.1.160000.2.4 |
| openSUSE:Leap 16.0 | kernel-docs | 0 | 6.12.0-160000.6.1 |
| openSUSE:Leap 16.0 | kernel-kvmsmall | 0 | 6.12.0-160000.6.1 |
| openSUSE:Leap 16.0 | kernel-obs-build | 0 | 6.12.0-160000.6.1 |
| openSUSE:Leap 16.0 | kernel-obs-qa | 0 | 6.12.0-160000.6.1 |
| openSUSE:Leap 16.0 | kernel-rt | 0 | 6.12.0-160000.6.1 |
| openSUSE:Leap 16.0 | kernel-source | 0 | 6.12.0-160000.6.1 |
| openSUSE:Leap 16.0 | kernel-syms | 0 | 6.12.0-160000.6.1 |
| openSUSE:Leap 16.0 | kernel-zfcpdump | 0 | 6.12.0-160000.6.1 |
Related vulnerabilities
- CVE-2025-39885 In the Linux kernel, the following vulnerability has been resolved: ocfs2: fix recursive… Also affects linux
- CVE-2025-39883 In the Linux kernel, the following vulnerability has been resolved: mm/memory-failure… Also affects linux
- CVE-2025-39884 In the Linux kernel, the following vulnerability has been resolved: btrfs: fix subvolume… Also affects linux
- CVE-2025-39886 In the Linux kernel, the following vulnerability has been resolved: bpf: Tell memcg to… Also affects linux
- CVE-2025-39876 In the Linux kernel, the following vulnerability has been resolved: net: fec: Fix… Also affects linux
- CVE-2025-39880 In the Linux kernel, the following vulnerability has been resolved: libceph: fix invalid… Also affects linux
- CVE-2025-39881 In the Linux kernel, the following vulnerability has been resolved: kernfs: Fix UAF in… Also affects linux
- CVE-2025-39882 In the Linux kernel, the following vulnerability has been resolved: drm/mediatek: fix… Also affects linux