Description
In the Linux kernel, the following vulnerability has been resolved:

io_uring/net: don't retry recv on uncommitted buffers

Commit 41b70df5b38b ("io_uring/net: commit partial buffers on retry")
commits ring provided buffers when a receive is going to be retried after
a partial transfer, so that another request using the same buffer group
can't be handed the memory the first one keeps receiving into. It commits
the number of bytes received so far. That does the job for a single
buffer which is consumed as a whole, but the request hangs on to all it
has mapped:

- For a buffer ring with IOU_PBUF_RING_INC only these bytes are consumed.
The rest of the buffer stays at the head of the ring.
- For a bundle only the buffers which hold these bytes are consumed, the
others that were peeked stay in the ring.

In both cases the next receive with that buffer group gets memory that
the retried request is still going to write to, and whoever comes last
overwrites the data of the other. What the retry fills isn't committed at
all, as the buffer list isn't known any more at that point. So the kernel
hands it out again later on, while the CQE tells the application that it
was used, and for an incremental buffer that it is done with.

The remainder can't be committed in advance: if the request ends up
receiving less, there is no way to tell the application that more was
consumed than the CQE accounts for. Complete the request with what it has
got instead of retrying it. MSG_WAITALL is no longer honoured for
receives into incremental buffers or multi buffer bundles, they can
return a short count, with the request marked as failed like for other
short MSG_WAITALL transfers.
Published: 2026-11-03
Score: n/a
EPSS: n/a
KEV: No
Impact: Potential Data Corruption / Memory Overwrite
Action: Apply Patch
AI Analysis

Impact

The kernel incorrectly handles receive retries when buffers are partially filled. It commits only the bytes actually received, but does not mark the rest of the buffer as committed. When a subsequent request using the same buffer group is issued, the kernel hands out the uncommitted portion for a new transfer, causing the new request to write over memory that the original retry is still targeting. This results in overlapping writes and can corrupt application data or the buffer contents, effectively breaking data integrity. The weakness is a form of improper buffer management and synchronization within the io_uring net subsystem.

Affected Systems

It can be inferred that all Linux kernel versions prior to the commit that fixed the issue are affected. The exact affected releases are not specified in the data, but any system that uses io_uring receive operations and may retry partial transfers before the commit could be vulnerable.

Risk and Exploitability

EPSS score is not available and the vulnerability is not listed in CISA's KEV catalog. No documented exploit has been reported. The likely attack vector is local to the host, requiring an attacker to have control of an application that uses io_uring receive operations. Due to the absence of a CVSS score, the exact severity rating cannot be quantified, but the weakness could lead to data corruption and compromise system reliability.

Generated by OpenCVE AI on November 3, 2026 at 13:52 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Apply the kernel patch corresponding to commit 41b70df5b38b, which correctly commits partial buffers on retry
  • Upgrade the Linux kernel to a version that incorporates the fix, ensuring that the io_uring/net subsystem no longer allows uncommitted buffer reuse
  • If immediate kernel update is not possible, restrict the use of io_uring receive operations with partial transfers in applications until a proper patch can be applied

Generated by OpenCVE AI on November 3, 2026 at 13:52 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Tue, 03 Nov 2026 14:15:00 +0000

Type Values Removed Values Added
First Time appeared Linux linux
Weaknesses CWE-665
Vendors & Products Linux linux

Tue, 03 Nov 2026 12:00:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: io_uring/net: don't retry recv on uncommitted buffers Commit 41b70df5b38b ("io_uring/net: commit partial buffers on retry") commits ring provided buffers when a receive is going to be retried after a partial transfer, so that another request using the same buffer group can't be handed the memory the first one keeps receiving into. It commits the number of bytes received so far. That does the job for a single buffer which is consumed as a whole, but the request hangs on to all it has mapped: - For a buffer ring with IOU_PBUF_RING_INC only these bytes are consumed. The rest of the buffer stays at the head of the ring. - For a bundle only the buffers which hold these bytes are consumed, the others that were peeked stay in the ring. In both cases the next receive with that buffer group gets memory that the retried request is still going to write to, and whoever comes last overwrites the data of the other. What the retry fills isn't committed at all, as the buffer list isn't known any more at that point. So the kernel hands it out again later on, while the CQE tells the application that it was used, and for an incremental buffer that it is done with. The remainder can't be committed in advance: if the request ends up receiving less, there is no way to tell the application that more was consumed than the CQE accounts for. Complete the request with what it has got instead of retrying it. MSG_WAITALL is no longer honoured for receives into incremental buffers or multi buffer bundles, they can return a short count, with the request marked as failed like for other short MSG_WAITALL transfers.
Title io_uring/net: don't retry recv on uncommitted buffers
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-11-03T11:48:16.173Z

Reserved: 2026-09-25T10:25:14.404Z

Link: CVE-2026-99264

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-11-03T12:17:33.490

Modified: 2026-11-03T12:17:33.490

Link: CVE-2026-99264

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-11-03T14:00:19Z

Weaknesses