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

net/mlx5e: Prevent stale XSK buffer release on refill retry

When an XDP redirect to an AF_XDP socket fails because its RX ring is
full, the XSK core frees the buffer. During the subsequent batched refill
of a legacy cyclic RQ, mlx5e also releases the WQE's XSK buffer before
allocating a replacement. If that refill succeeds only partially, a WQE
left without a replacement retains its old buffer pointer.

The buffer can meanwhile be allocated to another WQE. A later refill
retry can then free the live buffer through the stale pointer and publish
the same UMEM frame twice.

Mark the WQE as released immediately after the driver-side free. The flag
is already cleared when a replacement buffer is assigned, so refill
retries no longer release stale pointers.

The failure is silent and produces no kernel warning or splat. A
standalone legacy cyclic-RQ zero-copy libxsk reproducer, using 64-byte UDP
traffic offered at 12 Mpps, detected it: stock stopped after 2,854,914
packets in 4.094 seconds, with 4,542 xdp_rx_ring_full events and 64
ownership/double-publication errors. With this change it processed
356,904,225 packets in 30 seconds despite 571,405 xdp_rx_ring_full events,
with no ownership or data errors.
Published: 2026-10-23
Score: n/a
EPSS: n/a
KEV: No
Impact: Use‑after‑free leading to duplicate publication of UMEM frames and potential data corruption
Action: Upgrade Kernel
AI Analysis

Impact

An XDP redirect to an AF_XDP socket can fail when the receive ring is full, causing the core to free the associated buffer. When the driver subsequently refills a legacy cyclic request queue, it may free the same buffer again before assigning a replacement. If the refill only succeeds partially, a work queue entry remains with a stale buffer pointer that may already have been reallocated to another work item. A later refill retry can then free this live buffer through the stale reference, resulting in the same UMEM frame being published twice. The flaw is silent, produces no kernel warning or crash, and can manifest as data corruption or loss of packet integrity, as demonstrated in a high‑speed UDP test reaching millions of packets per second.

Affected Systems

All Linux kernel environments that still contain the unpatched mlx5e driver code are susceptible. The flaw operates in the kernel’s network stack and affects any system utilizing XDP offload to AF_XDP sockets through Mellanox mlx5e network drivers. No specific kernel versions are listed, so all builds prior to the applied patch are potentially vulnerable.

Risk and Exploitability

The vulnerability has no publicly disclosed CVSS score, EPSS score, or KEV status, and no exploit has been reported in the wild. Nevertheless, the failure is silent and cannot be reliably detected by system administrators, which raises the risk. The attack vector is local to the kernel via packet processing, requiring sufficient traffic to trigger the race condition. Because the flaw could result in duplicate frame publication and data integrity problems, it is advisable to treat its potential impact as high while awaiting a definitive severity assessment.

Generated by OpenCVE AI on October 23, 2026 at 15:36 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade to a Linux kernel that includes the mlx5e patch that defers buffer release until after a driver‑side free is acknowledged
  • Verify that the consumption flags in the driver’s workload queue are updated before buffer reuse as described in the patch
  • Regularly monitor kernel logs for xdp_rx_ring_full events and duplicate frame indicators to detect any residual issues

Generated by OpenCVE AI on October 23, 2026 at 15:36 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Fri, 23 Oct 2026 16:00:00 +0000

Type Values Removed Values Added
Weaknesses CWE-416

Fri, 23 Oct 2026 12:45:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: net/mlx5e: Prevent stale XSK buffer release on refill retry When an XDP redirect to an AF_XDP socket fails because its RX ring is full, the XSK core frees the buffer. During the subsequent batched refill of a legacy cyclic RQ, mlx5e also releases the WQE's XSK buffer before allocating a replacement. If that refill succeeds only partially, a WQE left without a replacement retains its old buffer pointer. The buffer can meanwhile be allocated to another WQE. A later refill retry can then free the live buffer through the stale pointer and publish the same UMEM frame twice. Mark the WQE as released immediately after the driver-side free. The flag is already cleared when a replacement buffer is assigned, so refill retries no longer release stale pointers. The failure is silent and produces no kernel warning or splat. A standalone legacy cyclic-RQ zero-copy libxsk reproducer, using 64-byte UDP traffic offered at 12 Mpps, detected it: stock stopped after 2,854,914 packets in 4.094 seconds, with 4,542 xdp_rx_ring_full events and 64 ownership/double-publication errors. With this change it processed 356,904,225 packets in 30 seconds despite 571,405 xdp_rx_ring_full events, with no ownership or data errors.
Title net/mlx5e: Prevent stale XSK buffer release on refill retry
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 Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-10-23T12:23:26.458Z

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

Link: CVE-2026-99079

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-10-23T13:17:32.040

Modified: 2026-10-23T13:17:32.040

Link: CVE-2026-99079

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-10-23T15:45:16Z

Weaknesses