All vulnerabilities
CVE-2026-99079

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

Linux LinuxOperating systems
CVSS
NoneNot scored
ExploitationNo known exploitationNot in CISA KEV, which does not prove it is unexploitedCISA KEV
Exploit odds (EPSS)No scoreNo FIRST EPSS score in this snapshot yet
Fixed in32bbb870078d467479965c21bbc4960c57eea208Also 34d1db2b18e1c1d189e34dd51923e031815f88e3, 639522e5056cade578a324acfa993ec6c9f7f5dc and 1 moreCVE List
Published23 Oct 2026Updated 23 Oct 2026CVE List

What fixes it

  • 32bbb870078d467479965c21bbc4960c57eea208LinuxCVE List
  • 34d1db2b18e1c1d189e34dd51923e031815f88e3LinuxCVE List
  • 639522e5056cade578a324acfa993ec6c9f7f5dcLinuxCVE List
  • 655f47477054d19de3b138840be229a1a4490d0cLinuxCVE List

A fixed version on one release line is not the upgrade target for every line. Check your exact version and any vendor backports.

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.

Text from CVE List

Affected versions 12

  • Linuxaffected: 3f93f82988bc6b4104314bf9aa485d47fbb7e241 before 32bbb870078d467479965c21bbc4960c57eea208CVE List
  • Linuxaffected: 3f93f82988bc6b4104314bf9aa485d47fbb7e241 before 34d1db2b18e1c1d189e34dd51923e031815f88e3CVE List
  • Linuxaffected: 3f93f82988bc6b4104314bf9aa485d47fbb7e241 before 639522e5056cade578a324acfa993ec6c9f7f5dcCVE List
  • Linuxaffected: 3f93f82988bc6b4104314bf9aa485d47fbb7e241 before 655f47477054d19de3b138840be229a1a4490d0cCVE List
  • Linuxaffected: 3f93f82988bc6b4104314bf9aa485d47fbb7e241 before e01620844c5c88b6fcf819d171df8e3976a0e76fCVE List
  • Linuxaffected: 6.4CVE List
  • Linuxunaffected: all versions before 6.4CVE List
  • Linuxunaffected: 6.6.160 through 6.6.*CVE List
  • Linuxunaffected: 6.12.113 through 6.12.*CVE List
  • Linuxunaffected: 6.18.57 through 6.18.*CVE List
  • Linuxunaffected: 7.2.11 through 7.2.*CVE List
  • Linuxunaffected: 7.3CVE List

References 5