In the Linux kernel, the following vulnerability has been resolved:
netfilter: nftables: Fix potential data-race in _nftexprtype_get()
nftunregisterexpr() can concurrent with _nftexprtypeget(), and there is not any protection when iterate over nftablesexpressions list in _nftexprtypeget(). Therefore, there is potential data-race of nftablesexpressions list entry.
Use listforeachentryrcu() to iterate over nftablesexpressions list in _nftexprtypeget(), and use rcureadlock() in the caller nftexprtype_get() to protect the entire type query process.
[
{
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@934e66e231cff2b18faa2c8aad0b8cec13957e05",
"deprecated": false,
"id": "CVE-2024-27020-06fcbd98",
"target": {
"file": "net/netfilter/nf_tables_api.c"
},
"digest": {
"threshold": 0.9,
"line_hashes": [
"75098032936433755512921020029464918555",
"168122694166416523239619478306935935122",
"95668585384223896742238436877733258386",
"277868676002708200661840065849682954426",
"81833538427388819145620825169476819041",
"199994187592644880172784227158510490579",
"90846442451590115924634620143595257567",
"48134192603229536978557728599866705793",
"103107768598676315561901701637062970985",
"19047983003822207435336081062356249151"
]
},
"signature_type": "Line"
},
{
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@01f1a678b05ade4b1248019c2dcca773aebbeb7f",
"deprecated": false,
"id": "CVE-2024-27020-08b70e49",
"target": {
"function": "__nft_expr_type_get",
"file": "net/netfilter/nf_tables_api.c"
},
"digest": {
"length": 313.0,
"function_hash": "105498827998937985556923152248004219071"
},
"signature_type": "Function"
},
{
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@0b6de00206adbbfc6373b3ae38d2a6f197987907",
"deprecated": false,
"id": "CVE-2024-27020-11702bb4",
"target": {
"file": "net/netfilter/nf_tables_api.c"
},
"digest": {
"threshold": 0.9,
"line_hashes": [
"75098032936433755512921020029464918555",
"168122694166416523239619478306935935122",
"95668585384223896742238436877733258386",
"277868676002708200661840065849682954426",
"81833538427388819145620825169476819041",
"199994187592644880172784227158510490579",
"90846442451590115924634620143595257567",
"48134192603229536978557728599866705793",
"103107768598676315561901701637062970985",
"19047983003822207435336081062356249151"
]
},
"signature_type": "Line"
},
{
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@01f1a678b05ade4b1248019c2dcca773aebbeb7f",
"deprecated": false,
"id": "CVE-2024-27020-1d506b63",
"target": {
"function": "nft_expr_type_get",
"file": "net/netfilter/nf_tables_api.c"
},
"digest": {
"length": 575.0,
"function_hash": "167546582171523148661367832186376369564"
},
"signature_type": "Function"
},
{
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@f969eb84ce482331a991079ab7a5c4dc3b7f89bf",
"deprecated": false,
"id": "CVE-2024-27020-3c13eb21",
"target": {
"file": "net/netfilter/nf_tables_api.c"
},
"digest": {
"threshold": 0.9,
"line_hashes": [
"75098032936433755512921020029464918555",
"168122694166416523239619478306935935122",
"95668585384223896742238436877733258386",
"277868676002708200661840065849682954426",
"81833538427388819145620825169476819041",
"199994187592644880172784227158510490579",
"90846442451590115924634620143595257567",
"48134192603229536978557728599866705793",
"103107768598676315561901701637062970985",
"19047983003822207435336081062356249151"
]
},
"signature_type": "Line"
},
{
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a9ebf340d123ae12582210407f879d6a5a1bc25b",
"deprecated": false,
"id": "CVE-2024-27020-4e8aba66",
"target": {
"file": "net/netfilter/nf_tables_api.c"
},
"digest": {
"threshold": 0.9,
"line_hashes": [
"75098032936433755512921020029464918555",
"168122694166416523239619478306935935122",
"95668585384223896742238436877733258386",
"277868676002708200661840065849682954426",
"81833538427388819145620825169476819041",
"199994187592644880172784227158510490579",
"90846442451590115924634620143595257567",
"48134192603229536978557728599866705793",
"103107768598676315561901701637062970985",
"19047983003822207435336081062356249151"
]
},
"signature_type": "Line"
},
{
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@8d56bad42ac4c43c6c72ddd6a654a2628bf839c5",
"deprecated": false,
"id": "CVE-2024-27020-51f5e4bb",
"target": {
"file": "net/netfilter/nf_tables_api.c"
},
"digest": {
"threshold": 0.9,
"line_hashes": [
"75098032936433755512921020029464918555",
"168122694166416523239619478306935935122",
"95668585384223896742238436877733258386",
"277868676002708200661840065849682954426",
"81833538427388819145620825169476819041",
"199994187592644880172784227158510490579",
"90846442451590115924634620143595257567",
"48134192603229536978557728599866705793",
"103107768598676315561901701637062970985",
"19047983003822207435336081062356249151"
]
},
"signature_type": "Line"
},
{
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@939109c0a8e2a006a6cc8209e262d25065f4403a",
"deprecated": false,
"id": "CVE-2024-27020-6523bb8f",
"target": {
"function": "nft_expr_type_get",
"file": "net/netfilter/nf_tables_api.c"
},
"digest": {
"length": 676.0,
"function_hash": "256943938808340047385330191177328593971"
},
"signature_type": "Function"
},
{
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@01f1a678b05ade4b1248019c2dcca773aebbeb7f",
"deprecated": false,
"id": "CVE-2024-27020-69d1a904",
"target": {
"file": "net/netfilter/nf_tables_api.c"
},
"digest": {
"threshold": 0.9,
"line_hashes": [
"75098032936433755512921020029464918555",
"168122694166416523239619478306935935122",
"95668585384223896742238436877733258386",
"277868676002708200661840065849682954426",
"81833538427388819145620825169476819041",
"199994187592644880172784227158510490579",
"90846442451590115924634620143595257567",
"48134192603229536978557728599866705793",
"103107768598676315561901701637062970985",
"19047983003822207435336081062356249151"
]
},
"signature_type": "Line"
},
{
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@8d56bad42ac4c43c6c72ddd6a654a2628bf839c5",
"deprecated": false,
"id": "CVE-2024-27020-89f484ae",
"target": {
"function": "__nft_expr_type_get",
"file": "net/netfilter/nf_tables_api.c"
},
"digest": {
"length": 313.0,
"function_hash": "105498827998937985556923152248004219071"
},
"signature_type": "Function"
},
{
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@b38a133d37fa421c8447b383d788c9cc6f5cb34c",
"deprecated": false,
"id": "CVE-2024-27020-9a4fa855",
"target": {
"function": "nft_expr_type_get",
"file": "net/netfilter/nf_tables_api.c"
},
"digest": {
"length": 575.0,
"function_hash": "167546582171523148661367832186376369564"
},
"signature_type": "Function"
},
{
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@8d56bad42ac4c43c6c72ddd6a654a2628bf839c5",
"deprecated": false,
"id": "CVE-2024-27020-a1fdf849",
"target": {
"function": "nft_expr_type_get",
"file": "net/netfilter/nf_tables_api.c"
},
"digest": {
"length": 575.0,
"function_hash": "167546582171523148661367832186376369564"
},
"signature_type": "Function"
},
{
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@939109c0a8e2a006a6cc8209e262d25065f4403a",
"deprecated": false,
"id": "CVE-2024-27020-a2cc0e3e",
"target": {
"file": "net/netfilter/nf_tables_api.c"
},
"digest": {
"threshold": 0.9,
"line_hashes": [
"75098032936433755512921020029464918555",
"168122694166416523239619478306935935122",
"95668585384223896742238436877733258386",
"277868676002708200661840065849682954426",
"81833538427388819145620825169476819041",
"199994187592644880172784227158510490579",
"90846442451590115924634620143595257567",
"48134192603229536978557728599866705793",
"103107768598676315561901701637062970985",
"19047983003822207435336081062356249151"
]
},
"signature_type": "Line"
},
{
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@934e66e231cff2b18faa2c8aad0b8cec13957e05",
"deprecated": false,
"id": "CVE-2024-27020-b2dad37c",
"target": {
"function": "__nft_expr_type_get",
"file": "net/netfilter/nf_tables_api.c"
},
"digest": {
"length": 313.0,
"function_hash": "105498827998937985556923152248004219071"
},
"signature_type": "Function"
},
{
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@0b6de00206adbbfc6373b3ae38d2a6f197987907",
"deprecated": false,
"id": "CVE-2024-27020-bb48f5c1",
"target": {
"function": "nft_expr_type_get",
"file": "net/netfilter/nf_tables_api.c"
},
"digest": {
"length": 575.0,
"function_hash": "167546582171523148661367832186376369564"
},
"signature_type": "Function"
},
{
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@0b6de00206adbbfc6373b3ae38d2a6f197987907",
"deprecated": false,
"id": "CVE-2024-27020-c2efa1b0",
"target": {
"function": "__nft_expr_type_get",
"file": "net/netfilter/nf_tables_api.c"
},
"digest": {
"length": 313.0,
"function_hash": "105498827998937985556923152248004219071"
},
"signature_type": "Function"
},
{
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@934e66e231cff2b18faa2c8aad0b8cec13957e05",
"deprecated": false,
"id": "CVE-2024-27020-c93f4732",
"target": {
"function": "nft_expr_type_get",
"file": "net/netfilter/nf_tables_api.c"
},
"digest": {
"length": 575.0,
"function_hash": "167546582171523148661367832186376369564"
},
"signature_type": "Function"
},
{
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a9ebf340d123ae12582210407f879d6a5a1bc25b",
"deprecated": false,
"id": "CVE-2024-27020-cb0f431c",
"target": {
"function": "__nft_expr_type_get",
"file": "net/netfilter/nf_tables_api.c"
},
"digest": {
"length": 313.0,
"function_hash": "105498827998937985556923152248004219071"
},
"signature_type": "Function"
},
{
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@939109c0a8e2a006a6cc8209e262d25065f4403a",
"deprecated": false,
"id": "CVE-2024-27020-cb11c17e",
"target": {
"function": "__nft_expr_type_get",
"file": "net/netfilter/nf_tables_api.c"
},
"digest": {
"length": 313.0,
"function_hash": "105498827998937985556923152248004219071"
},
"signature_type": "Function"
},
{
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@f969eb84ce482331a991079ab7a5c4dc3b7f89bf",
"deprecated": false,
"id": "CVE-2024-27020-d056599c",
"target": {
"function": "__nft_expr_type_get",
"file": "net/netfilter/nf_tables_api.c"
},
"digest": {
"length": 313.0,
"function_hash": "105498827998937985556923152248004219071"
},
"signature_type": "Function"
},
{
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@b38a133d37fa421c8447b383d788c9cc6f5cb34c",
"deprecated": false,
"id": "CVE-2024-27020-d12f1179",
"target": {
"function": "__nft_expr_type_get",
"file": "net/netfilter/nf_tables_api.c"
},
"digest": {
"length": 313.0,
"function_hash": "105498827998937985556923152248004219071"
},
"signature_type": "Function"
},
{
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a9ebf340d123ae12582210407f879d6a5a1bc25b",
"deprecated": false,
"id": "CVE-2024-27020-e1a65e8d",
"target": {
"function": "nft_expr_type_get",
"file": "net/netfilter/nf_tables_api.c"
},
"digest": {
"length": 575.0,
"function_hash": "167546582171523148661367832186376369564"
},
"signature_type": "Function"
},
{
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@b38a133d37fa421c8447b383d788c9cc6f5cb34c",
"deprecated": false,
"id": "CVE-2024-27020-f7325905",
"target": {
"file": "net/netfilter/nf_tables_api.c"
},
"digest": {
"threshold": 0.9,
"line_hashes": [
"75098032936433755512921020029464918555",
"168122694166416523239619478306935935122",
"95668585384223896742238436877733258386",
"277868676002708200661840065849682954426",
"81833538427388819145620825169476819041",
"199994187592644880172784227158510490579",
"90846442451590115924634620143595257567",
"48134192603229536978557728599866705793",
"103107768598676315561901701637062970985",
"19047983003822207435336081062356249151"
]
},
"signature_type": "Line"
},
{
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@f969eb84ce482331a991079ab7a5c4dc3b7f89bf",
"deprecated": false,
"id": "CVE-2024-27020-f9c7e987",
"target": {
"function": "nft_expr_type_get",
"file": "net/netfilter/nf_tables_api.c"
},
"digest": {
"length": 575.0,
"function_hash": "167546582171523148661367832186376369564"
},
"signature_type": "Function"
}
]