CVE-2026-74558
Received Received - Intake

Linux Kernel XSK Zero-Copy Tx Descriptor Handling Flaw

Vulnerability report for CVE-2026-74558, including description, CVSS score, EPSS score, affected products, exploitability, helpful resources, and attack-flow context.

Publication date: 2026-08-15

Last updated on: 2026-08-15

Assigner: kernel.org

Description

In the Linux kernel, the following vulnerability has been resolved: xsk: reclaim invalid Tx descriptors in ZC batch path The zero-copy Tx batch parser stops when it encounters an invalid descriptor. If this happens after one or more continuation descriptors, the Tx consumer can be advanced past fragments that are neither submitted to the driver nor returned to userspace through the completion ring. A similar problem occurs when a packet exceeds xdp_zc_max_segs. The descriptors consumed up to the limit are released without completion, and the remaining continuation descriptors can subsequently be interpreted as the beginning of another packet. Parse Tx batches in packet units and distinguish descriptors belonging to complete valid packets from descriptors consumed while draining an invalid or oversized packet. Return the former to the driver and append the latter to the CQ address area so userspace can reclaim their UMEM frames. Treat a standalone invalid descriptor as a one-descriptor reclaim-only packet. Advancing the Tx-ring consumer releases the ring slot, but does not by itself return ownership of the referenced UMEM frame to userspace. Once draining starts, continue until the packet's end-of-packet descriptor is consumed. Preserve the drain state on the socket when EOP has not yet been supplied, so draining can continue during a later call. Leave incomplete but otherwise valid packets on the Tx ring. Shared-UMEM pools using multi-buffer Tx also need packet-framed parsing. Walk their Tx sockets one packet at a time, preserving the existing per-socket fairness scheme, instead of using the legacy one-descriptor fallback. Keep that fallback for shared pools that do not use multi-buffer Tx. Since the drain state is maintained per socket and both the singular and shared paths can resume an interrupted drain, changing the socket list from singular to shared requires no special bind-time transition. CQ entries are positional, and drivers may complete only part of the Tx work returned by xsk_tx_peek_release_desc_batch(). Therefore, reclaim-only entries cannot be published immediately when earlier driver-visible descriptors are still outstanding. Track the number of driver-visible CQ entries preceding the reclaim entries. Let xsk_tx_completed() publish partial hardware Tx completions, and publish the reclaim entries only after every earlier Tx descriptor has completed. Complete a reclaim-only batch immediately when there is no driver-visible work in front of it, and prevent another Tx batch from being appended while reclaim entries remain pending. Also cap batch processing by the size of the pool's temporary descriptor array, as Tx rings belonging to sockets sharing a UMEM may have different sizes. This ensures that every invalid Tx descriptor consumed by the ZC batch path is either submitted to the driver as part of a valid packet or returned to userspace without violating CQ completion ordering.

CVSS Scores

EPSS Scores

Probability:
Percentile:

Meta Information

Published
2026-08-15
Last Modified
2026-08-15
Generated
2026-08-15
AI Q&A
2026-08-15
EPSS Evaluated
N/A
NVD
EUVD

Affected Vendors & Products

Showing 1 associated CPE
Vendor Product Version / Range
linux linux_kernel *

Helpful Resources

Exploitability

CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-UNKNOWN

Attack-Flow Graph

AI Quick Actions

Instant insights powered by AI
Executive Summary

This vulnerability in the Linux kernel involves improper handling of invalid or oversized zero-copy (ZC) Tx descriptors in the batch processing path. When invalid descriptors are encountered, the system fails to properly reclaim them, leading to potential loss of UMEM frames or misinterpretation of subsequent descriptors as new packets. The fix ensures descriptors are processed in packet units, distinguishing valid from invalid ones, and properly reclaiming frames or returning them to userspace.

Detection Guidance

This vulnerability is specific to the Linux kernel's XDP zero-copy (xsk) Tx batch processing. Detection requires checking kernel logs for XDP-related errors or monitoring for abnormal descriptor handling in Tx rings. Commands like dmesg | grep xsk or checking /proc/net/xdp may help identify issues.

Impact Analysis

This vulnerability could lead to data corruption or loss if invalid Tx descriptors are not properly handled. It may cause UMEM frames to be incorrectly released or misinterpreted, potentially disrupting network operations or leading to system instability. Systems using zero-copy packet transmission are most affected.

Mitigation Strategies

Apply the latest Linux kernel patches addressing this issue. Disable XDP zero-copy (xsk) if not required. Monitor Tx ring descriptors for invalid entries. Update network drivers if they interact with XDP zero-copy features.

Chat Assistant

Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-74558. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70

EPSS Chart