CVE-2025-39816 io_uring/kbuf: always use READ_ONCE() to read ring provided buffer lengths
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.
Other vulnerabilities in Linux kernel
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.