CVE-2025-37920

Severity CVSS v4.0:
Pending analysis
Type:
CWE-362 Concurrent Execution using Shared Resource with Improper Synchronization ('Race Condition')
Publication date:
20/05/2025
Last modified:
17/03/2026

Description

In the Linux kernel, the following vulnerability has been resolved:<br /> <br /> xsk: Fix race condition in AF_XDP generic RX path<br /> <br /> Move rx_lock from xsk_socket to xsk_buff_pool.<br /> Fix synchronization for shared umem mode in<br /> generic RX path where multiple sockets share<br /> single xsk_buff_pool.<br /> <br /> RX queue is exclusive to xsk_socket, while FILL<br /> queue can be shared between multiple sockets.<br /> This could result in race condition where two<br /> CPU cores access RX path of two different sockets<br /> sharing the same umem.<br /> <br /> Protect both queues by acquiring spinlock in shared<br /> xsk_buff_pool.<br /> <br /> Lock contention may be minimized in the future by some<br /> per-thread FQ buffering.<br /> <br /> It&amp;#39;s safe and necessary to move spin_lock_bh(rx_lock)<br /> after xsk_rcv_check():<br /> * xs-&gt;pool and spinlock_init is synchronized by<br /> xsk_bind() -&gt; xsk_is_bound() memory barriers.<br /> * xsk_rcv_check() may return true at the moment<br /> of xsk_release() or xsk_unbind_dev(),<br /> however this will not cause any data races or<br /> race conditions. xsk_unbind_dev() removes xdp<br /> socket from all maps and waits for completion<br /> of all outstanding rx operations. Packets in<br /> RX path will either complete safely or drop.

Vulnerable products and versions

CPE From Up to
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 5.1.20 (including) 5.2 (excluding)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 5.2.3 (including) 6.12.28 (excluding)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.13 (including) 6.14.6 (excluding)
cpe:2.3:o:linux:linux_kernel:6.15:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.15:rc2:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.15:rc3:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.15:rc4:*:*:*:*:*:*