CVE-2023-54223

CVE-2023-54223

Critical · published December 30, 2025

CVSS v3.1
9.8
EPSS
0%
Percentile
38.4
In the wild
Unconfirmed
What it is

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

net/mlx5e: xsk: Fix invalid buffer access for legacy rq

The below crash can be encountered when using xdpsock in rx mode for

legacy rq: the buffer gets released in the XDP_REDIRECT path, and then

once again in the driver. This fix sets the flag to avoid releasing on

the driver side.

XSK handling of buffers for legacy rq was relying on the caller to set

the skip release flag. But the referenced fix started using fragment

counts for pages instead of the skip flag.

Crash log:

general protection fault, probably for non-canonical address 0xffff8881217e3a: 0000 [#1] SMP

CPU: 0 PID: 14 Comm: ksoftirqd/0 Not tainted 6.5.0-rc1+ #31

Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.13.0-0-gf21b5a4aeb02-prebuilt.qemu.org 04/01/2014

RIP: 0010:bpf_prog_03b13f331978c78c+0xf/0x28

Code: ...

RSP: 0018:ffff88810082fc98 EFLAGS: 00010246

RAX: 0000000000000000 RBX: ffff888138404901 RCX: c0ffffc900027cbc

RDX: ffffffffa000b514 RSI: 00ffff8881217e32 RDI: ffff888138404901

RBP: ffff88810082fc98 R08: 0000000000091100 R09: 0000000000000006

R10: 0000000000000800 R11: 0000000000000800 R12: ffffc9000027a000

R13: ffff8881217e2dc0 R14: ffff8881217e2910 R15: ffff8881217e2f00

FS: 0000000000000000(0000) GS:ffff88852c800000(0000) knlGS:0000000000000000

CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033

CR2: 0000564cb2e2cde0 CR3: 000000010e603004 CR4: 0000000000370eb0

DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000

DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400

Call Trace:

<TASK>

? die_addr+0x32/0x80

? exc_general_protection+0x192/0x390

? asm_exc_general_protection+0x22/0x30

? 0xffffffffa000b514

? bpf_prog_03b13f331978c78c+0xf/0x28

mlx5e_xdp_handle+0x48/0x670 [mlx5_core]

? dev_gro_receive+0x3b5/0x6e0

mlx5e_xsk_skb_from_cqe_linear+0x6e/0x90 [mlx5_core]

mlx5e_handle_rx_cqe+0x55/0x100 [mlx5_core]

mlx5e_poll_rx_cq+0x87/0x6e0 [mlx5_core]

mlx5e_napi_poll+0x45e/0x6b0 [mlx5_core]

__napi_poll+0x25/0x1a0

net_rx_action+0x28a/0x300

__do_softirq+0xcd/0x279

? sort_range+0x20/0x20

run_ksoftirqd+0x1a/0x20

smpboot_thread_fn+0xa2/0x130

kthread+0xc9/0xf0

? kthread_complete_and_exit+0x20/0x20

ret_from_fork+0x1f/0x30

</TASK>

Modules linked in: mlx5_ib mlx5_core rpcrdma rdma_ucm ib_iser libiscsi scsi_transport_iscsi ib_umad rdma_cm ib_ipoib iw_cm ib_cm ib_uverbs ib_core xt_conntrack xt_MASQUERADE nf_conntrack_netlink nfnetlink xt_addrtype iptable_nat nf_nat br_netfilter overlay zram zsmalloc fuse [last unloaded: mlx5_core]

---[ end trace 0000000000000000 ]---

The record
Technical detail
CVSS v3.1
9.8 · CRITICAL
Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CVSS v4.0
Not supplied
EPSS
0.00454 · 38.4th percentile
Published
2025-12-30T18:16Z
References (2)
EPSS history
Timeline
  • 30 DEC 12:11Z
    net/mlx5e: xsk: Fix invalid buffer access for legacy rq
    cvelistv5