CVE-2025-38730
Severity CVSS v4.0:
Pending analysis
Type:
Unavailable / Other
Publication date:
04/09/2025
Last modified:
05/09/2025
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
io_uring/net: commit partial buffers on retry<br />
<br />
Ring provided buffers are potentially only valid within the single<br />
execution context in which they were acquired. io_uring deals with this<br />
and invalidates them on retry. But on the networking side, if<br />
MSG_WAITALL is set, or if the socket is of the streaming type and too<br />
little was processed, then it will hang on to the buffer rather than<br />
recycle or commit it. This is problematic for two reasons:<br />
<br />
1) If someone unregisters the provided buffer ring before a later retry,<br />
then the req->buf_list will no longer be valid.<br />
<br />
2) If multiple sockers are using the same buffer group, then multiple<br />
receives can consume the same memory. This can cause data corruption<br />
in the application, as either receive could land in the same<br />
userspace buffer.<br />
<br />
Fix this by disallowing partial retries from pinning a provided buffer<br />
across multiple executions, if ring provided buffers are used.
Impact
References to Advisories, Solutions, and Tools
- https://git.kernel.org/stable/c/21a4ddb0f5e933f372808c10b9ac704505751bb1
- https://git.kernel.org/stable/c/2eb7937b5fc7fcd90eab7bebb0181214b61b9283
- https://git.kernel.org/stable/c/3b53dc1c641f2884d4750fc25aaf6c36b90db606
- https://git.kernel.org/stable/c/41b70df5b38bc80967d2e0ed55cc3c3896bba781
- https://git.kernel.org/stable/c/fe9da1812f8697a38f7e30991d568ec199e16059