In the Linux kernel, the following vulnerability has been resolved:
xsk: Fix race condition in AF_XDP generic RX path
Move rxlock from xsksocket to xskbuffpool. Fix synchronization for shared umem mode in generic RX path where multiple sockets share single xskbuffpool.
RX queue is exclusive to xsk_socket, while FILL queue can be shared between multiple sockets. This could result in race condition where two CPU cores access RX path of two different sockets sharing the same umem.
Protect both queues by acquiring spinlock in shared xskbuffpool.
Lock contention may be minimized in the future by some per-thread FQ buffering.
It's safe and necessary to move spinlockbh(rxlock) after xskrcvcheck(): * xs->pool and spinlockinit is synchronized by xskbind() -> xskisbound() memory barriers. * xskrcvcheck() may return true at the moment of xskrelease() or xskunbinddev(), however this will not cause any data races or race conditions. xskunbinddev() removes xdp socket from all maps and waits for completion of all outstanding rx operations. Packets in RX path will either complete safely or drop.
{
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2025/37xxx/CVE-2025-37920.json",
"cna_assigner": "Linux"
}"https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2025-37920.json"
[
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a1356ac7749cafc4e27aa62c0c4604b5dca4983e",
"id": "CVE-2025-37920-05c5ad5d",
"target": {
"file": "net/xdp/xsk_buff_pool.c"
},
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"92230178918571579394527209959335708131",
"89548291644246423342237853196198587399",
"126152548144033711524781266334133242277",
"299389288288750150530897301734881351029"
]
},
"deprecated": false,
"signature_type": "Line"
},
{
"id": "CVE-2025-37920-09720d02",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@65d3c570614b892257dc58a1b202908242ecf8fd",
"target": {
"file": "net/xdp/xsk.c"
},
"digest": {
"threshold": 0.9,
"line_hashes": [
"126880538160884246350745307797029271381",
"196447592314195267359876820803350665719",
"155413084013934139120955590804935727667",
"120388857360917047656191108225340786850",
"120738813099541959968984081394877558104",
"249850116021792546079350342421770112559",
"237853156595888262919733886989787108040",
"230284893093057080148499581988802389701",
"23123408090703282837248783537285004231",
"41771086143642893270892501132864964359",
"69373950892318115592951879266999124668",
"265681875793470578231127829680719919922",
"83550419642796216486353437288218312200",
"338046574901008626922589712532755836100"
]
},
"signature_version": "v1",
"deprecated": false,
"signature_type": "Line"
},
{
"id": "CVE-2025-37920-1e60c66f",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@75a240a3e8abf17b9e00b0ef0492b1bbaa932251",
"target": {
"file": "net/xdp/xsk.c"
},
"digest": {
"threshold": 0.9,
"line_hashes": [
"126880538160884246350745307797029271381",
"196447592314195267359876820803350665719",
"155413084013934139120955590804935727667",
"120388857360917047656191108225340786850",
"120738813099541959968984081394877558104",
"249850116021792546079350342421770112559",
"237853156595888262919733886989787108040",
"230284893093057080148499581988802389701",
"23123408090703282837248783537285004231",
"41771086143642893270892501132864964359",
"69373950892318115592951879266999124668",
"265681875793470578231127829680719919922",
"83550419642796216486353437288218312200",
"338046574901008626922589712532755836100"
]
},
"signature_version": "v1",
"deprecated": false,
"signature_type": "Line"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@b6978c565ce33658543c637060852434b4248d30",
"id": "CVE-2025-37920-237b92be",
"target": {
"file": "net/xdp/xsk_buff_pool.c",
"function": "xp_create_and_assign_umem"
},
"signature_version": "v1",
"digest": {
"function_hash": "200610972602000801047398861593522102051",
"length": 1638.0
},
"deprecated": false,
"signature_type": "Function"
},
{
"id": "CVE-2025-37920-27ad806e",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@b6978c565ce33658543c637060852434b4248d30",
"target": {
"file": "net/xdp/xsk.c",
"function": "xsk_create"
},
"signature_version": "v1",
"digest": {
"function_hash": "9934996702756750512224574824894455999",
"length": 933.0
},
"deprecated": false,
"signature_type": "Function"
},
{
"id": "CVE-2025-37920-2922e551",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@b6978c565ce33658543c637060852434b4248d30",
"target": {
"file": "include/net/xsk_buff_pool.h"
},
"digest": {
"threshold": 0.9,
"line_hashes": [
"193937600989131400290879675288654411561",
"285812399871357172952389155430693773429",
"304604413199549159955894079307106703754",
"72874936912737429542249946620662972403"
]
},
"signature_version": "v1",
"deprecated": false,
"signature_type": "Line"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@75a240a3e8abf17b9e00b0ef0492b1bbaa932251",
"id": "CVE-2025-37920-2d9caa18",
"target": {
"file": "include/net/xdp_sock.h"
},
"digest": {
"threshold": 0.9,
"line_hashes": [
"109480659377319963308002689764089016696",
"138606646190541035392913167170629135281",
"208486179319298276966702461264262050271",
"84895286143790576691096750142235640201"
]
},
"signature_version": "v1",
"deprecated": false,
"signature_type": "Line"
},
{
"id": "CVE-2025-37920-483ccbc0",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@75a240a3e8abf17b9e00b0ef0492b1bbaa932251",
"target": {
"file": "net/xdp/xsk_buff_pool.c",
"function": "xp_create_and_assign_umem"
},
"digest": {
"function_hash": "179896058051464690422501225363826353258",
"length": 1705.0
},
"signature_version": "v1",
"deprecated": false,
"signature_type": "Function"
},
{
"id": "CVE-2025-37920-508930de",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@75a240a3e8abf17b9e00b0ef0492b1bbaa932251",
"target": {
"file": "net/xdp/xsk.c",
"function": "xsk_generic_rcv"
},
"digest": {
"function_hash": "11259614993271198199230001512352126360",
"length": 298.0
},
"signature_version": "v1",
"deprecated": false,
"signature_type": "Function"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@b6978c565ce33658543c637060852434b4248d30",
"id": "CVE-2025-37920-5a34be51",
"target": {
"file": "include/net/xdp_sock.h"
},
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"8089614794894075771947917369048872930",
"158629251289983689491745854874061850144",
"227262942886696983302157608841695395916",
"84895286143790576691096750142235640201"
]
},
"deprecated": false,
"signature_type": "Line"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a1356ac7749cafc4e27aa62c0c4604b5dca4983e",
"id": "CVE-2025-37920-5cca6fe1",
"target": {
"file": "net/xdp/xsk.c",
"function": "xsk_generic_rcv"
},
"signature_version": "v1",
"digest": {
"function_hash": "11259614993271198199230001512352126360",
"length": 298.0
},
"deprecated": false,
"signature_type": "Function"
},
{
"id": "CVE-2025-37920-5f3c1fa0",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@75a240a3e8abf17b9e00b0ef0492b1bbaa932251",
"target": {
"file": "net/xdp/xsk_buff_pool.c"
},
"digest": {
"threshold": 0.9,
"line_hashes": [
"92230178918571579394527209959335708131",
"89548291644246423342237853196198587399",
"126152548144033711524781266334133242277",
"299389288288750150530897301734881351029"
]
},
"signature_version": "v1",
"deprecated": false,
"signature_type": "Line"
},
{
"id": "CVE-2025-37920-66ecfa76",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a1356ac7749cafc4e27aa62c0c4604b5dca4983e",
"target": {
"file": "include/net/xsk_buff_pool.h"
},
"digest": {
"threshold": 0.9,
"line_hashes": [
"193937600989131400290879675288654411561",
"285812399871357172952389155430693773429",
"304604413199549159955894079307106703754",
"72874936912737429542249946620662972403"
]
},
"signature_version": "v1",
"deprecated": false,
"signature_type": "Line"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@975b372313dc018b9bd6cc0d85d188787054b19e",
"id": "CVE-2025-37920-74a7f8bd",
"target": {
"file": "include/net/xdp_sock.h"
},
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"8089614794894075771947917369048872930",
"158629251289983689491745854874061850144",
"227262942886696983302157608841695395916",
"159878516521349440626335216013180865336"
]
},
"deprecated": false,
"signature_type": "Line"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@b6978c565ce33658543c637060852434b4248d30",
"id": "CVE-2025-37920-77b5a4de",
"target": {
"file": "net/xdp/xsk_buff_pool.c"
},
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"224695135183990259135849521208479388468",
"255460338566934014034453808483950498281",
"27454612902611646807837819567683921458",
"300383224487889036710622026313071302283"
]
},
"deprecated": false,
"signature_type": "Line"
},
{
"id": "CVE-2025-37920-7d2c8863",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@975b372313dc018b9bd6cc0d85d188787054b19e",
"target": {
"file": "net/xdp/xsk_buff_pool.c",
"function": "xp_create_and_assign_umem"
},
"digest": {
"function_hash": "309705661963531937106269287885958974594",
"length": 1565.0
},
"signature_version": "v1",
"deprecated": false,
"signature_type": "Function"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@65d3c570614b892257dc58a1b202908242ecf8fd",
"id": "CVE-2025-37920-8240a216",
"target": {
"file": "include/net/xdp_sock.h"
},
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"109480659377319963308002689764089016696",
"138606646190541035392913167170629135281",
"208486179319298276966702461264262050271",
"84895286143790576691096750142235640201"
]
},
"deprecated": false,
"signature_type": "Line"
},
{
"id": "CVE-2025-37920-8555235f",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@75a240a3e8abf17b9e00b0ef0492b1bbaa932251",
"target": {
"file": "include/net/xsk_buff_pool.h"
},
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"193937600989131400290879675288654411561",
"285812399871357172952389155430693773429",
"304604413199549159955894079307106703754",
"72874936912737429542249946620662972403"
]
},
"deprecated": false,
"signature_type": "Line"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a1356ac7749cafc4e27aa62c0c4604b5dca4983e",
"id": "CVE-2025-37920-86a66276",
"target": {
"file": "net/xdp/xsk_buff_pool.c",
"function": "xp_create_and_assign_umem"
},
"signature_version": "v1",
"digest": {
"function_hash": "179896058051464690422501225363826353258",
"length": 1705.0
},
"deprecated": false,
"signature_type": "Function"
},
{
"id": "CVE-2025-37920-8c03207d",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@65d3c570614b892257dc58a1b202908242ecf8fd",
"target": {
"file": "include/net/xsk_buff_pool.h"
},
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"193937600989131400290879675288654411561",
"285812399871357172952389155430693773429",
"304604413199549159955894079307106703754",
"72874936912737429542249946620662972403"
]
},
"deprecated": false,
"signature_type": "Line"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@75a240a3e8abf17b9e00b0ef0492b1bbaa932251",
"id": "CVE-2025-37920-9f8de33e",
"target": {
"file": "net/xdp/xsk.c",
"function": "xsk_create"
},
"signature_version": "v1",
"digest": {
"function_hash": "9934996702756750512224574824894455999",
"length": 933.0
},
"deprecated": false,
"signature_type": "Function"
},
{
"id": "CVE-2025-37920-a593a6b8",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@65d3c570614b892257dc58a1b202908242ecf8fd",
"target": {
"file": "net/xdp/xsk_buff_pool.c"
},
"digest": {
"threshold": 0.9,
"line_hashes": [
"92230178918571579394527209959335708131",
"89548291644246423342237853196198587399",
"126152548144033711524781266334133242277",
"299389288288750150530897301734881351029"
]
},
"signature_version": "v1",
"deprecated": false,
"signature_type": "Line"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a1356ac7749cafc4e27aa62c0c4604b5dca4983e",
"id": "CVE-2025-37920-b0767331",
"target": {
"file": "net/xdp/xsk.c",
"function": "xsk_create"
},
"digest": {
"function_hash": "9934996702756750512224574824894455999",
"length": 933.0
},
"signature_version": "v1",
"deprecated": false,
"signature_type": "Function"
},
{
"id": "CVE-2025-37920-b6feba32",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@65d3c570614b892257dc58a1b202908242ecf8fd",
"target": {
"file": "net/xdp/xsk.c",
"function": "xsk_generic_rcv"
},
"digest": {
"function_hash": "11259614993271198199230001512352126360",
"length": 298.0
},
"signature_version": "v1",
"deprecated": false,
"signature_type": "Function"
},
{
"id": "CVE-2025-37920-ba822d98",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@975b372313dc018b9bd6cc0d85d188787054b19e",
"target": {
"file": "net/xdp/xsk_buff_pool.c"
},
"digest": {
"threshold": 0.9,
"line_hashes": [
"224695135183990259135849521208479388468",
"255460338566934014034453808483950498281",
"42139016998059737154854992566342377990",
"88450706085230990017096865853739138120"
]
},
"signature_version": "v1",
"deprecated": false,
"signature_type": "Line"
},
{
"id": "CVE-2025-37920-bdc2e87c",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@b6978c565ce33658543c637060852434b4248d30",
"target": {
"file": "net/xdp/xsk.c"
},
"digest": {
"threshold": 0.9,
"line_hashes": [
"126880538160884246350745307797029271381",
"196447592314195267359876820803350665719",
"155413084013934139120955590804935727667",
"120388857360917047656191108225340786850",
"120738813099541959968984081394877558104",
"249850116021792546079350342421770112559",
"237853156595888262919733886989787108040",
"230284893093057080148499581988802389701",
"23123408090703282837248783537285004231",
"41771086143642893270892501132864964359",
"69373950892318115592951879266999124668",
"265681875793470578231127829680719919922",
"83550419642796216486353437288218312200",
"338046574901008626922589712532755836100"
]
},
"signature_version": "v1",
"deprecated": false,
"signature_type": "Line"
},
{
"id": "CVE-2025-37920-c1f2e4a1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@975b372313dc018b9bd6cc0d85d188787054b19e",
"target": {
"file": "net/xdp/xsk.c",
"function": "xsk_generic_rcv"
},
"digest": {
"function_hash": "275548663935044792532241882812426807550",
"length": 253.0
},
"signature_version": "v1",
"deprecated": false,
"signature_type": "Function"
},
{
"id": "CVE-2025-37920-d57fe43b",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a1356ac7749cafc4e27aa62c0c4604b5dca4983e",
"target": {
"file": "net/xdp/xsk.c"
},
"digest": {
"threshold": 0.9,
"line_hashes": [
"126880538160884246350745307797029271381",
"196447592314195267359876820803350665719",
"155413084013934139120955590804935727667",
"120388857360917047656191108225340786850",
"120738813099541959968984081394877558104",
"249850116021792546079350342421770112559",
"237853156595888262919733886989787108040",
"230284893093057080148499581988802389701",
"23123408090703282837248783537285004231",
"41771086143642893270892501132864964359",
"69373950892318115592951879266999124668",
"265681875793470578231127829680719919922",
"83550419642796216486353437288218312200",
"338046574901008626922589712532755836100"
]
},
"signature_version": "v1",
"deprecated": false,
"signature_type": "Line"
},
{
"id": "CVE-2025-37920-d6098ff3",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@65d3c570614b892257dc58a1b202908242ecf8fd",
"target": {
"file": "net/xdp/xsk_buff_pool.c",
"function": "xp_create_and_assign_umem"
},
"digest": {
"function_hash": "297829663817709319444802305611516707329",
"length": 1749.0
},
"signature_version": "v1",
"deprecated": false,
"signature_type": "Function"
},
{
"id": "CVE-2025-37920-df04f833",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@975b372313dc018b9bd6cc0d85d188787054b19e",
"target": {
"file": "net/xdp/xsk.c",
"function": "xsk_create"
},
"digest": {
"function_hash": "16864000571720912497700615543414698170",
"length": 952.0
},
"signature_version": "v1",
"deprecated": false,
"signature_type": "Function"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@b6978c565ce33658543c637060852434b4248d30",
"id": "CVE-2025-37920-e2f10107",
"target": {
"file": "net/xdp/xsk.c",
"function": "xsk_generic_rcv"
},
"signature_version": "v1",
"digest": {
"function_hash": "11259614993271198199230001512352126360",
"length": 298.0
},
"deprecated": false,
"signature_type": "Function"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@65d3c570614b892257dc58a1b202908242ecf8fd",
"id": "CVE-2025-37920-e508c083",
"target": {
"file": "net/xdp/xsk.c",
"function": "xsk_create"
},
"digest": {
"function_hash": "9934996702756750512224574824894455999",
"length": 933.0
},
"signature_version": "v1",
"deprecated": false,
"signature_type": "Function"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@975b372313dc018b9bd6cc0d85d188787054b19e",
"id": "CVE-2025-37920-ef232781",
"target": {
"file": "include/net/xsk_buff_pool.h"
},
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"193937600989131400290879675288654411561",
"285812399871357172952389155430693773429",
"25214051106022760150487119025344705612",
"239549595524025368335619494527601557590"
]
},
"deprecated": false,
"signature_type": "Line"
},
{
"id": "CVE-2025-37920-f14caf4a",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@975b372313dc018b9bd6cc0d85d188787054b19e",
"target": {
"file": "net/xdp/xsk.c"
},
"digest": {
"threshold": 0.9,
"line_hashes": [
"241755917950720614439758160746116629302",
"331894079273863301728442342336713764389",
"117421548023062699595871588805316745622",
"55801132603295350898314830548072037841",
"27747857181698749894129700077780216996",
"325695496668532318088189004069752280941",
"239731327908692821491855207706559157179",
"230284893093057080148499581988802389701",
"23123408090703282837248783537285004231",
"41771086143642893270892501132864964359",
"69373950892318115592951879266999124668",
"265681875793470578231127829680719919922",
"83550419642796216486353437288218312200",
"338046574901008626922589712532755836100"
]
},
"signature_version": "v1",
"deprecated": false,
"signature_type": "Line"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a1356ac7749cafc4e27aa62c0c4604b5dca4983e",
"id": "CVE-2025-37920-f703a1f6",
"target": {
"file": "include/net/xdp_sock.h"
},
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"109480659377319963308002689764089016696",
"138606646190541035392913167170629135281",
"208486179319298276966702461264262050271",
"84895286143790576691096750142235640201"
]
},
"deprecated": false,
"signature_type": "Line"
}
]