CVE-2023-53426

xsk: Fix xsk_diag use-after-free error during socket cleanup

High · published September 18, 2025

CVSS v3.1
7.8
EPSS
0%
Percentile
4.3
In the wild
Unconfirmed
What it is

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

xsk: Fix xsk_diag use-after-free error during socket cleanup

Fix a use-after-free error that is possible if the xsk_diag interface

is used after the socket has been unbound from the device. This can

happen either due to the socket being closed or the device

disappearing. In the early days of AF_XDP, the way we tested that a

socket was not bound to a device was to simply check if the netdevice

pointer in the xsk socket structure was NULL. Later, a better system

was introduced by having an explicit state variable in the xsk socket

struct. For example, the state of a socket that is on the way to being

closed and has been unbound from the device is XSK_UNBOUND.

The commit in the Fixes tag below deleted the old way of signalling

that a socket is unbound, setting dev to NULL. This in the belief that

all code using the old way had been exterminated. That was

unfortunately not true as the xsk diagnostics code was still using the

old way and thus does not work as intended when a socket is going

down. Fix this by introducing a test against the state variable. If

the socket is in the state XSK_UNBOUND, simply abort the diagnostic's

netlink operation.

The record
Technical detail
CVSS v3.1
7.8 · HIGH
Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
CVSS v4.0
Not supplied
EPSS
0.00155 · 4.3th percentile
Published
2025-09-18T16:04Z
EPSS history
Timeline
  • 18 SEP 16:04Z
    xsk: Fix xsk_diag use-after-free error during socket cleanup
    cvelistv5