Cloudanix VulnDB

CVE-2025-39816

Medium · 5.5

CVSS

5.5

EPSS

0.1%

Published

Sep 16, 2025

CISA due date

—

Cloudanix analysis

Schedule a fix SSVC: Track

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

  1. Map user-provided buffers into io_uring ring
  2. Concurrently alter buffer lengths after initial kernel read
  3. Trigger ring operations that perform incremental commits
  4. 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