---
id: CVE-2026-99079
title: 'net/mlx5e: Prevent stale XSK buffer release on refill retry'
summary: |-
  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. …
severity: none
vendor: Linux
product: Linux
affected:
  - >-
    Linux >= 3f93f82988bc6b4104314bf9aa485d47fbb7e241 <
    32bbb870078d467479965c21bbc4960c57eea208
  - >-
    Linux >= 3f93f82988bc6b4104314bf9aa485d47fbb7e241 <
    34d1db2b18e1c1d189e34dd51923e031815f88e3
  - >-
    Linux >= 3f93f82988bc6b4104314bf9aa485d47fbb7e241 <
    639522e5056cade578a324acfa993ec6c9f7f5dc
  - >-
    Linux >= 3f93f82988bc6b4104314bf9aa485d47fbb7e241 <
    655f47477054d19de3b138840be229a1a4490d0c
  - >-
    Linux >= 3f93f82988bc6b4104314bf9aa485d47fbb7e241 <
    e01620844c5c88b6fcf819d171df8e3976a0e76f
  - Linux 6.4
published: '2026-10-23'
updated: '2026-10-23'
sourceUpdated: '2026-10-23T12:23:26.458Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2026-99079'
references:
  - url: 'https://git.kernel.org/stable/c/32bbb870078d467479965c21bbc4960c57eea208'
  - url: 'https://git.kernel.org/stable/c/34d1db2b18e1c1d189e34dd51923e031815f88e3'
  - url: 'https://git.kernel.org/stable/c/639522e5056cade578a324acfa993ec6c9f7f5dc'
  - url: 'https://git.kernel.org/stable/c/655f47477054d19de3b138840be229a1a4490d0c'
  - url: 'https://git.kernel.org/stable/c/e01620844c5c88b6fcf819d171df8e3976a0e76f'
tags:
  - cve.org
ingestedAt: '2026-10-23T13:24:55.513Z'
---

## Overview

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

- `Linux >= 3f93f82988bc6b4104314bf9aa485d47fbb7e241 < 32bbb870078d467479965c21bbc4960c57eea208`
- `Linux >= 3f93f82988bc6b4104314bf9aa485d47fbb7e241 < 34d1db2b18e1c1d189e34dd51923e031815f88e3`
- `Linux >= 3f93f82988bc6b4104314bf9aa485d47fbb7e241 < 639522e5056cade578a324acfa993ec6c9f7f5dc`
- `Linux >= 3f93f82988bc6b4104314bf9aa485d47fbb7e241 < 655f47477054d19de3b138840be229a1a4490d0c`
- `Linux >= 3f93f82988bc6b4104314bf9aa485d47fbb7e241 < e01620844c5c88b6fcf819d171df8e3976a0e76f`
- `Linux 6.4`

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
