In the Linux kernel, the following vulnerability has been resolved:
netfilter: nftables: Fix potential data-race in _nftflowtabletype_get()
nftunregisterflowtabletype() within nfflowinetmoduleexit() can concurrent with _nftflowtabletypeget() within nftablesnewflowtable(). And thhere is not any protection when iterate over nftablesflowtables list in _nftflowtabletypeget(). Therefore, there is pertential data-race of nftables_flowtables list entry.
Use listforeachentryrcu() to iterate over nftablesflowtables list in _nftflowtabletypeget(), and use rcureadlock() in the caller nftflowtabletype_get() to protect the entire type query process.
[
{
"id": "CVE-2024-35898-0fc990d7",
"signature_version": "v1",
"digest": {
"function_hash": "95908774381151420732384641787710137736",
"length": 189.0
},
"deprecated": false,
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a347bc8e6251eaee4b619da28020641eb5b0dd77",
"target": {
"file": "net/netfilter/nf_tables_api.c",
"function": "__nft_flowtable_type_get"
}
},
{
"id": "CVE-2024-35898-1195a90a",
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"75210996733255519031926112049895957076",
"282166872338990646974865952983403981158",
"304387160368997576197109940040584250159",
"56059058419082667272761352431338927403",
"300753411347392652043816090272948926443",
"42116179576424876924307874696965645418",
"176839264440297392842900924280617104483",
"55752154408196487176802165273420906263",
"168737304333059650481423454522169044813",
"206845371282023270636686871921705342519",
"278490575040228675816141351743483670926",
"103107768598676315561901701637062970985",
"19047983003822207435336081062356249151"
]
},
"deprecated": false,
"signature_type": "Line",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@69d1fe14a680042ec913f22196b58e2c8ff1b007",
"target": {
"file": "net/netfilter/nf_tables_api.c"
}
},
{
"id": "CVE-2024-35898-14f86373",
"signature_version": "v1",
"digest": {
"function_hash": "95908774381151420732384641787710137736",
"length": 189.0
},
"deprecated": false,
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@8b891153b2e4dc0ca9d9dab8f619d49c740813df",
"target": {
"file": "net/netfilter/nf_tables_api.c",
"function": "__nft_flowtable_type_get"
}
},
{
"id": "CVE-2024-35898-1e812a14",
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"75210996733255519031926112049895957076",
"282166872338990646974865952983403981158",
"304387160368997576197109940040584250159",
"56059058419082667272761352431338927403",
"300753411347392652043816090272948926443",
"42116179576424876924307874696965645418",
"176839264440297392842900924280617104483",
"55752154408196487176802165273420906263",
"168737304333059650481423454522169044813",
"206845371282023270636686871921705342519",
"278490575040228675816141351743483670926",
"103107768598676315561901701637062970985",
"19047983003822207435336081062356249151"
]
},
"deprecated": false,
"signature_type": "Line",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@940d41caa71f0d3a52df2fde5fada524a993e331",
"target": {
"file": "net/netfilter/nf_tables_api.c"
}
},
{
"id": "CVE-2024-35898-20bf277b",
"signature_version": "v1",
"digest": {
"function_hash": "117817654654336068669914838465036371566",
"length": 370.0
},
"deprecated": false,
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@24225011d81b471acc0e1e315b7d9905459a6304",
"target": {
"file": "net/netfilter/nf_tables_api.c",
"function": "nft_flowtable_type_get"
}
},
{
"id": "CVE-2024-35898-2d0f7b02",
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"75210996733255519031926112049895957076",
"282166872338990646974865952983403981158",
"304387160368997576197109940040584250159",
"56059058419082667272761352431338927403",
"300753411347392652043816090272948926443",
"42116179576424876924307874696965645418",
"176839264440297392842900924280617104483",
"55752154408196487176802165273420906263",
"168737304333059650481423454522169044813",
"206845371282023270636686871921705342519",
"278490575040228675816141351743483670926",
"103107768598676315561901701637062970985",
"19047983003822207435336081062356249151"
]
},
"deprecated": false,
"signature_type": "Line",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2485bcfe05ee3cf9ca8923a94fa2e456924c79c8",
"target": {
"file": "net/netfilter/nf_tables_api.c"
}
},
{
"id": "CVE-2024-35898-465eb8fc",
"signature_version": "v1",
"digest": {
"function_hash": "95908774381151420732384641787710137736",
"length": 189.0
},
"deprecated": false,
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@940d41caa71f0d3a52df2fde5fada524a993e331",
"target": {
"file": "net/netfilter/nf_tables_api.c",
"function": "__nft_flowtable_type_get"
}
},
{
"id": "CVE-2024-35898-4e1c990c",
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"75210996733255519031926112049895957076",
"282166872338990646974865952983403981158",
"304387160368997576197109940040584250159",
"56059058419082667272761352431338927403",
"300753411347392652043816090272948926443",
"42116179576424876924307874696965645418",
"176839264440297392842900924280617104483",
"55752154408196487176802165273420906263",
"168737304333059650481423454522169044813",
"206845371282023270636686871921705342519",
"278490575040228675816141351743483670926",
"103107768598676315561901701637062970985",
"19047983003822207435336081062356249151"
]
},
"deprecated": false,
"signature_type": "Line",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a347bc8e6251eaee4b619da28020641eb5b0dd77",
"target": {
"file": "net/netfilter/nf_tables_api.c"
}
},
{
"id": "CVE-2024-35898-4fabbf3d",
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"75210996733255519031926112049895957076",
"282166872338990646974865952983403981158",
"304387160368997576197109940040584250159",
"56059058419082667272761352431338927403",
"300753411347392652043816090272948926443",
"42116179576424876924307874696965645418",
"176839264440297392842900924280617104483",
"55752154408196487176802165273420906263",
"168737304333059650481423454522169044813",
"206845371282023270636686871921705342519",
"278490575040228675816141351743483670926",
"103107768598676315561901701637062970985",
"19047983003822207435336081062356249151"
]
},
"deprecated": false,
"signature_type": "Line",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@e684b1674fd1ca4361812a491242ae871d6b2859",
"target": {
"file": "net/netfilter/nf_tables_api.c"
}
},
{
"id": "CVE-2024-35898-587f694a",
"signature_version": "v1",
"digest": {
"function_hash": "117817654654336068669914838465036371566",
"length": 370.0
},
"deprecated": false,
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2485bcfe05ee3cf9ca8923a94fa2e456924c79c8",
"target": {
"file": "net/netfilter/nf_tables_api.c",
"function": "nft_flowtable_type_get"
}
},
{
"id": "CVE-2024-35898-6a399491",
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"75210996733255519031926112049895957076",
"282166872338990646974865952983403981158",
"304387160368997576197109940040584250159",
"56059058419082667272761352431338927403",
"300753411347392652043816090272948926443",
"42116179576424876924307874696965645418",
"176839264440297392842900924280617104483",
"55752154408196487176802165273420906263",
"168737304333059650481423454522169044813",
"206845371282023270636686871921705342519",
"278490575040228675816141351743483670926",
"103107768598676315561901701637062970985",
"19047983003822207435336081062356249151"
]
},
"deprecated": false,
"signature_type": "Line",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@24225011d81b471acc0e1e315b7d9905459a6304",
"target": {
"file": "net/netfilter/nf_tables_api.c"
}
},
{
"id": "CVE-2024-35898-7480e0ed",
"signature_version": "v1",
"digest": {
"function_hash": "117817654654336068669914838465036371566",
"length": 370.0
},
"deprecated": false,
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a347bc8e6251eaee4b619da28020641eb5b0dd77",
"target": {
"file": "net/netfilter/nf_tables_api.c",
"function": "nft_flowtable_type_get"
}
},
{
"id": "CVE-2024-35898-77b0668f",
"signature_version": "v1",
"digest": {
"function_hash": "182069609071988461514935306714839232215",
"length": 379.0
},
"deprecated": false,
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@69d1fe14a680042ec913f22196b58e2c8ff1b007",
"target": {
"file": "net/netfilter/nf_tables_api.c",
"function": "nft_flowtable_type_get"
}
},
{
"id": "CVE-2024-35898-a33cc7d6",
"signature_version": "v1",
"digest": {
"function_hash": "117817654654336068669914838465036371566",
"length": 370.0
},
"deprecated": false,
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@8b891153b2e4dc0ca9d9dab8f619d49c740813df",
"target": {
"file": "net/netfilter/nf_tables_api.c",
"function": "nft_flowtable_type_get"
}
},
{
"id": "CVE-2024-35898-ad0e4996",
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"75210996733255519031926112049895957076",
"282166872338990646974865952983403981158",
"304387160368997576197109940040584250159",
"56059058419082667272761352431338927403",
"300753411347392652043816090272948926443",
"42116179576424876924307874696965645418",
"176839264440297392842900924280617104483",
"55752154408196487176802165273420906263",
"168737304333059650481423454522169044813",
"206845371282023270636686871921705342519",
"278490575040228675816141351743483670926",
"103107768598676315561901701637062970985",
"19047983003822207435336081062356249151"
]
},
"deprecated": false,
"signature_type": "Line",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@8b891153b2e4dc0ca9d9dab8f619d49c740813df",
"target": {
"file": "net/netfilter/nf_tables_api.c"
}
},
{
"id": "CVE-2024-35898-b3cde053",
"signature_version": "v1",
"digest": {
"function_hash": "95908774381151420732384641787710137736",
"length": 189.0
},
"deprecated": false,
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@69d1fe14a680042ec913f22196b58e2c8ff1b007",
"target": {
"file": "net/netfilter/nf_tables_api.c",
"function": "__nft_flowtable_type_get"
}
},
{
"id": "CVE-2024-35898-cc7ccafc",
"signature_version": "v1",
"digest": {
"function_hash": "95908774381151420732384641787710137736",
"length": 189.0
},
"deprecated": false,
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@24225011d81b471acc0e1e315b7d9905459a6304",
"target": {
"file": "net/netfilter/nf_tables_api.c",
"function": "__nft_flowtable_type_get"
}
},
{
"id": "CVE-2024-35898-d20db2cb",
"signature_version": "v1",
"digest": {
"function_hash": "95908774381151420732384641787710137736",
"length": 189.0
},
"deprecated": false,
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2485bcfe05ee3cf9ca8923a94fa2e456924c79c8",
"target": {
"file": "net/netfilter/nf_tables_api.c",
"function": "__nft_flowtable_type_get"
}
},
{
"id": "CVE-2024-35898-edff181a",
"signature_version": "v1",
"digest": {
"function_hash": "117817654654336068669914838465036371566",
"length": 370.0
},
"deprecated": false,
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@940d41caa71f0d3a52df2fde5fada524a993e331",
"target": {
"file": "net/netfilter/nf_tables_api.c",
"function": "nft_flowtable_type_get"
}
},
{
"id": "CVE-2024-35898-f4f923e4",
"signature_version": "v1",
"digest": {
"function_hash": "95908774381151420732384641787710137736",
"length": 189.0
},
"deprecated": false,
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@e684b1674fd1ca4361812a491242ae871d6b2859",
"target": {
"file": "net/netfilter/nf_tables_api.c",
"function": "__nft_flowtable_type_get"
}
},
{
"id": "CVE-2024-35898-f6b40335",
"signature_version": "v1",
"digest": {
"function_hash": "117817654654336068669914838465036371566",
"length": 370.0
},
"deprecated": false,
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@e684b1674fd1ca4361812a491242ae871d6b2859",
"target": {
"file": "net/netfilter/nf_tables_api.c",
"function": "nft_flowtable_type_get"
}
}
]