[PATCH net 0/6] xsk: harden TX metadata validation against races
From: Stanislav Fomichev <hidden>
Date: 2026-07-27 16:20:00
Also in:
bpf, intel-wired-lan, linux-rdma, lkml, netdev
Cen Zhang reported a KASAN out-of-bounds read when AF_XDP is configured with a TX metadata area smaller than struct xsk_tx_metadata. The metadata is also shared with user space, so reading its flags more than once can produce inconsistent validation and processing decisions. Require enough space for the flags and one request field, validate the launch-time field against the configured metadata length, and use one snapshot of the flags while processing each request. Carry the validated decision through completion handling so later user-space changes cannot enable an unrequested completion timestamp. Reported-by: AutonomousCodeSecurity@microsoft.com Reported-by: Cen Zhang (Microsoft) <redacted> Link: https://lore.kernel.org/netdev/20260720155210.34229-1-blbllhy@gmail.com/ (local) Stanislav Fomichev (6): xsk: require at least 16 bytes of TX metadata xsk: pass TX metadata pointer by reference xsk: clear metadata pointer when no timestamp is requested xsk: validate launch-time metadata size xsk: move xsk_tx_metadata_request() to xdp_sock_drv.h xsk: validate metadata when processing requests drivers/net/ethernet/intel/igc/igc_main.c | 2 +- drivers/net/ethernet/mellanox/mlx5/core/en.h | 2 +- .../net/ethernet/mellanox/mlx5/core/en/xdp.c | 15 ++-- .../net/ethernet/mellanox/mlx5/core/en/xdp.h | 4 +- .../ethernet/mellanox/mlx5/core/en/xsk/tx.c | 2 +- .../net/ethernet/stmicro/stmmac/stmmac_main.c | 4 +- include/net/libeth/xsk.h | 2 +- include/net/xdp_sock.h | 45 ++--------- include/net/xdp_sock_drv.h | 77 ++++++++++++++++--- net/xdp/xdp_umem.c | 2 + net/xdp/xsk.c | 11 ++- net/xdp/xsk_buff_pool.c | 6 +- 12 files changed, 101 insertions(+), 71 deletions(-) -- 2.53.0-Meta