CVE-2025-39816 io_uring/kbuf: always use READ_ONCE() to read ring provided buffer lengths

Medium 5.5 Published Updated

A race condition in the Linux kernel io_uring subsystem allows attackers to cause a denial of service by manipulating buffer lengths.

Exploited in the wild
Not known
Login needed
Any signed-in user
Attackable
Local or same network only
Victim action needed
Not needed
Fix
Available

What is CVE-2025-39816?

CVE-2025-39816 is a medium-severity vulnerability in Linux kernel, published on 16 Sep 2025. It can only be exploited from the same machine or local network, with no action from the victim.

Official description

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.

Which versions are affected by CVE-2025-39816?

It affects 1 product.

Products include Linux kernel.

How do I fix CVE-2025-39816?

Apply the vendor's patch.

Is CVE-2025-39816 being exploited?

There is no known exploitation of CVE-2025-39816 in the wild and no public exploit code.

All Linux kernel vulnerabilities

Sources

Also known as BELL-CVE-2025-39816, DEBIAN-CVE-2025-39816, GHSA-57pg-f379-59c5, ROOT-OS-DEBIAN-13-CVE-2025-39816, UBUNTU-CVE-2025-39816.

Is CVE-2025-39816 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free