Cloudanix VulnDB

CVE-2026-99079

Critical · 9.8

CVSS

9.8

EPSS

0.5%

Published

Oct 23, 2026

CISA due date

—

Cloudanix analysis

Next patch cycle SSVC: Track

A flaw in Linux network card drivers could let attackers corrupt memory on busy high-speed connections, risking crashes or bad data in systems that move lots of network traffic.

Exploitation
Remote Unauthenticated
Attacker needs
None
Complexity
Low
Impact
Full Compromise
Component
OS kernel
Class
Use After Free
Remediation
Upgrade
Effort
Medium
Patch risk
Low

What it actually does

Use-after-free in mlx5e legacy cyclic RQ XSK buffer handling: partial refill retries after RX ring full conditions leave stale WQE pointers that can free a live buffer and double-publish the same UMEM frame.

Why it matters to the business

Memory corruption or silent data corruption risks in high-speed networking workloads using Mellanox mlx5e cards with AF_XDP zero-copy sockets; can cause packet processing failures or system instability under sustained load.

How an attack unfolds

An attacker generates high-rate small-packet UDP traffic to repeatedly fill an AF_XDP RX ring, forcing XDP redirect failures and subsequent partial batched refills; stale pointers retained on unsuccessful refills allow a later retry to free an in-use buffer.

How to fix it

Apply the upstream kernel fix that immediately marks the WQE released after the driver-side free; rebuild and deploy the updated kernel image on affected systems.

How to confirm the fix worked

Confirm the patch is present in net/mlx5e code; run the zero-copy libxsk reproducer under sustained 12 Mpps load and verify absence of ownership/double-publication errors.

Typical attack path

  1. Flood target interface with 64-byte UDP packets at multi-million PPS rates
  2. Cause repeated xdp_rx_ring_full events on the AF_XDP socket
  3. Trigger partial refill of mlx5e legacy cyclic RQ after driver-side free
  4. Reuse the freed UMEM frame via the stale WQE pointer on refill retry

How to detect it

Search kernel logs and application output for spikes in xdp_rx_ring_full events accompanied by ownership or double-publication errors; correlate with mlx5e XSK refill paths under load.

  • xdp_rx_ring_full
  • ownership/double-publication errors
  • mlx5e XSK buffer release on refill retry

What your security team should do

  • Prioritize kernel updates containing the mlx5e XSK refill fix on all systems using AF_XDP
  • Enable monitoring for xdp_rx_ring_full events paired with data or ownership errors
  • Temporarily fall back to non-zero-copy XSK modes if patching is delayed

The record

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.

Affected packages

Ecosystem Package Introduced Fixed