CVE-2025-38730: io_uring/net: commit partial buffers on retry
In the Linux kernel, the following vulnerability has been resolved:
iouring/net: commit partial buffers on retry
Ring provided buffers are potentially only valid within the single execution context in which they were acquired. iouring deals with this and invalidates them on retry. But on the networking side, if MSGWAITALL is set, or if the socket is of the streaming type and too little was processed, then it will hang on to the buffer rather than recycle or commit it. This is problematic for two reasons:
1) If someone unregisters the provided buffer ring before a later retry, then the req->buflist will no longer be valid.
2) If multiple sockers are using the same buffer group, then multiple receives can consume the same memory. This can cause data corruption in the application, as either receive could land in the same userspace buffer.
Fix this by disallowing partial retries from pinning a provided buffer across multiple executions, if ring provided buffers are used.
Other sources
In the Linux kernel, the following vulnerability has been resolved:
iouring/net: commit partial buffers on retry
Ring provided buffers are potentially only valid within the single execution context in which they were acquired. iouring deals with this and invalidates them on retry. But on the networking side, if MSGWAITALL is set, or if the socket is of the streaming type and too little was processed, then it will hang on to the buffer rather than recycle or commit it. This is problematic for two reasons:
1) If someone unregisters the provided buffer ring before a later retry, then the req-buflist will no longer be valid.
2) If multiple sockers are using the same buffer group, then multiple receives can consume the same memory. This can cause data corruption in the application, as either receive could land in the same userspace buffer.
Fix this by disallowing partial retries from pinning a provided buffer across multiple executions, if ring provided buffers are used.
— IBM
Affected Software
Event History
Frequently Asked Questions
What is the severity of CVE-2025-38730?
CVE-2025-38730 has been classified as a medium severity vulnerability.
How do I fix CVE-2025-38730?
To fix CVE-2025-38730, update your Linux Kernel to the latest stable release that contains the patch.
What are the consequences of CVE-2025-38730 if left unpatched?
If left unpatched, CVE-2025-38730 may result in potential data corruption or integrity issues in applications utilizing io_uring.
Which versions of the Linux Kernel are affected by CVE-2025-38730?
CVE-2025-38730 affects certain versions of the Linux Kernel that utilize the io_uring feature.
Is CVE-2025-38730 exploit-related?
CVE-2025-38730 does not appear to have publicly disclosed exploits, but it is recommended to apply the patch to enhance security.