Bug 2393191 (CVE-2025-38730)

Summary: CVE-2025-38730 kernel: Linux kernel: Data corruption and system instability due to improper io_uring/net buffer handling
Product: [Other] Security Response Reporter: OSIDB Bzimport <bzimport>
Component: vulnerabilityAssignee: Product Security DevOps Team <prodsec-dev>
Status: NEW --- QA Contact:
Severity: medium Docs Contact:
Priority: medium    
Version: unspecifiedCC: rhel-process-autobot, watson-tool-maintainers
Target Milestone: ---Keywords: Security
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: ---
Doc Text:
A flaw was found in the Linux kernel's io_uring/net component. This vulnerability arises when ring provided buffers are partially committed during network operations, particularly when MSG_WAITALL is enabled or with streaming sockets. A local attacker could exploit this by causing multiple socket receives to access the same memory, leading to data corruption within applications. This could also result in system instability if buffer rings are unregistered before a retry operation completes.
Story Points: ---
Clone Of: Environment:
Last Closed: Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description OSIDB Bzimport 2025-09-04 16:04:05 UTC
In the Linux kernel, the following vulnerability has been resolved:

io_uring/net: commit partial buffers on retry

Ring provided buffers are potentially only valid within the single
execution context in which they were acquired. io_uring deals with this
and invalidates them on retry. But on the networking side, if
MSG_WAITALL 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->buf_list 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.

Comment 6 errata-xmlrpc 2026-02-09 02:13:14 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 9

Via RHSA-2026:2212 https://access.redhat.com/errata/RHSA-2026:2212

Comment 7 errata-xmlrpc 2026-02-09 09:31:55 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 10

Via RHSA-2026:2282 https://access.redhat.com/errata/RHSA-2026:2282

Comment 8 errata-xmlrpc 2026-02-16 17:27:29 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 9.6 Extended Update Support

Via RHSA-2026:2759 https://access.redhat.com/errata/RHSA-2026:2759

Comment 9 errata-xmlrpc 2026-02-17 00:43:00 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 9.4 Extended Update Support

Via RHSA-2026:2766 https://access.redhat.com/errata/RHSA-2026:2766

Comment 10 errata-xmlrpc 2026-02-24 00:34:25 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 10.0 Extended Update Support

Via RHSA-2026:3124 https://access.redhat.com/errata/RHSA-2026:3124