In the Linux kernel, the following vulnerability has been resolved:
netfilter: nf_tables: fix memleak when more than 255 elements expired
When more than 255 elements expired we're supposed to switch to a new gc container structure.
This never happens: u8 type will wrap before reaching the boundary and nfttransgc_space() always returns true.
This means we recycle the initial gc container structure and lose track of the elements that came before.
While at it, don't deref 'gc' after we've passed it to call_rcu.
[
{
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@ef99506eaf1dc31feff1adfcfd68bc5535a22171",
"deprecated": false,
"id": "CVE-2023-52581-134f911e",
"signature_type": "Line",
"digest": {
"threshold": 0.9,
"line_hashes": [
"314217076144337835711028762734029280174",
"254269828351414008734268164222580613707",
"138148698828389968866944399095852253016",
"220326645836937399339845095561456989177"
]
},
"target": {
"file": "include/net/netfilter/nf_tables.h"
}
},
{
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@ef99506eaf1dc31feff1adfcfd68bc5535a22171",
"deprecated": false,
"id": "CVE-2023-52581-1518295c",
"signature_type": "Function",
"digest": {
"function_hash": "40187094748911278286210692150571782523",
"length": 188.0
},
"target": {
"function": "nft_trans_gc_queue_async",
"file": "net/netfilter/nf_tables_api.c"
}
},
{
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@4aea243b6853d06c1d160a9955b759189aa02b14",
"deprecated": false,
"id": "CVE-2023-52581-1dc66d2c",
"signature_type": "Line",
"digest": {
"threshold": 0.9,
"line_hashes": [
"211400286270114662272552790928838515932",
"133211344847217129881434344336699945072",
"267259107421390148582891921966971502855",
"30265231958071994552707599326867978989",
"223172336109764952642730258507394342673",
"188494632775162072476723082742162278106",
"51290059523696686423640911673878002808",
"111189745425083787416193117732482052981",
"23674267460915641076482528781100720287",
"252960576769738450334770185786697571376",
"80534693105316150130799233510783547133",
"21688169269926730258299722362376411486",
"109164263991393606603847762936861978649",
"95903916311746711069040020140982186823",
"266122580954322755706393726268978868603",
"11400051181770081842305313313287050223",
"47477580460385291301840782994802140956",
"130311105574851761660488108657463340424"
]
},
"target": {
"file": "net/netfilter/nf_tables_api.c"
}
},
{
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@7cf055b43756b10aa2b851c927c940f5ed652125",
"deprecated": false,
"id": "CVE-2023-52581-23db2ae4",
"signature_type": "Line",
"digest": {
"threshold": 0.9,
"line_hashes": [
"314217076144337835711028762734029280174",
"254269828351414008734268164222580613707",
"138148698828389968866944399095852253016",
"220326645836937399339845095561456989177"
]
},
"target": {
"file": "include/net/netfilter/nf_tables.h"
}
},
{
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@cf5000a7787cbc10341091d37245a42c119d26c5",
"deprecated": false,
"id": "CVE-2023-52581-2c7304d7",
"signature_type": "Line",
"digest": {
"threshold": 0.9,
"line_hashes": [
"314217076144337835711028762734029280174",
"254269828351414008734268164222580613707",
"138148698828389968866944399095852253016",
"220326645836937399339845095561456989177"
]
},
"target": {
"file": "include/net/netfilter/nf_tables.h"
}
},
{
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@7e5d732e6902eb6a37b35480796838a145ae5f07",
"deprecated": false,
"id": "CVE-2023-52581-3d18468e",
"signature_type": "Function",
"digest": {
"function_hash": "63867078134677050628539653373960974184",
"length": 258.0
},
"target": {
"function": "nft_trans_gc_queue_sync",
"file": "net/netfilter/nf_tables_api.c"
}
},
{
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@09c85f2d21ab6b5acba31a037985b13e8e6565b8",
"deprecated": false,
"id": "CVE-2023-52581-3ef85afc",
"signature_type": "Function",
"digest": {
"function_hash": "63867078134677050628539653373960974184",
"length": 258.0
},
"target": {
"function": "nft_trans_gc_queue_sync",
"file": "net/netfilter/nf_tables_api.c"
}
},
{
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@7cf055b43756b10aa2b851c927c940f5ed652125",
"deprecated": false,
"id": "CVE-2023-52581-49c9044e",
"signature_type": "Line",
"digest": {
"threshold": 0.9,
"line_hashes": [
"211400286270114662272552790928838515932",
"133211344847217129881434344336699945072",
"267259107421390148582891921966971502855",
"30265231958071994552707599326867978989",
"223172336109764952642730258507394342673",
"188494632775162072476723082742162278106",
"89891071152015225378565240108577246919",
"318347057890029072697791682218207550363",
"30707895953377848037942195748226498410",
"165537515771376752098680290556876751843",
"80534693105316150130799233510783547133",
"21688169269926730258299722362376411486",
"109164263991393606603847762936861978649",
"95903916311746711069040020140982186823",
"266122580954322755706393726268978868603",
"11400051181770081842305313313287050223",
"335834748636131341747487928501091939137",
"100824253695014138301438258790741560790"
]
},
"target": {
"file": "net/netfilter/nf_tables_api.c"
}
},
{
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@7e5d732e6902eb6a37b35480796838a145ae5f07",
"deprecated": false,
"id": "CVE-2023-52581-5165fdeb",
"signature_type": "Function",
"digest": {
"function_hash": "40187094748911278286210692150571782523",
"length": 188.0
},
"target": {
"function": "nft_trans_gc_queue_async",
"file": "net/netfilter/nf_tables_api.c"
}
},
{
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a995a68e8a3b48533e47c856865d109a1f1a9d01",
"deprecated": false,
"id": "CVE-2023-52581-61577f5b",
"signature_type": "Line",
"digest": {
"threshold": 0.9,
"line_hashes": [
"211400286270114662272552790928838515932",
"133211344847217129881434344336699945072",
"267259107421390148582891921966971502855",
"30265231958071994552707599326867978989",
"223172336109764952642730258507394342673",
"188494632775162072476723082742162278106",
"89891071152015225378565240108577246919",
"318347057890029072697791682218207550363",
"30707895953377848037942195748226498410",
"165537515771376752098680290556876751843",
"80534693105316150130799233510783547133",
"21688169269926730258299722362376411486",
"109164263991393606603847762936861978649",
"95903916311746711069040020140982186823",
"266122580954322755706393726268978868603",
"11400051181770081842305313313287050223",
"335834748636131341747487928501091939137",
"100824253695014138301438258790741560790"
]
},
"target": {
"file": "net/netfilter/nf_tables_api.c"
}
},
{
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@cf5000a7787cbc10341091d37245a42c119d26c5",
"deprecated": false,
"id": "CVE-2023-52581-6300743d",
"signature_type": "Line",
"digest": {
"threshold": 0.9,
"line_hashes": [
"211400286270114662272552790928838515932",
"133211344847217129881434344336699945072",
"267259107421390148582891921966971502855",
"30265231958071994552707599326867978989",
"223172336109764952642730258507394342673",
"188494632775162072476723082742162278106",
"51290059523696686423640911673878002808",
"111189745425083787416193117732482052981",
"23674267460915641076482528781100720287",
"252960576769738450334770185786697571376",
"80534693105316150130799233510783547133",
"21688169269926730258299722362376411486",
"109164263991393606603847762936861978649",
"95903916311746711069040020140982186823",
"266122580954322755706393726268978868603",
"11400051181770081842305313313287050223",
"47477580460385291301840782994802140956",
"130311105574851761660488108657463340424"
]
},
"target": {
"file": "net/netfilter/nf_tables_api.c"
}
},
{
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@7e5d732e6902eb6a37b35480796838a145ae5f07",
"deprecated": false,
"id": "CVE-2023-52581-6a7a790a",
"signature_type": "Line",
"digest": {
"threshold": 0.9,
"line_hashes": [
"211400286270114662272552790928838515932",
"133211344847217129881434344336699945072",
"267259107421390148582891921966971502855",
"30265231958071994552707599326867978989",
"223172336109764952642730258507394342673",
"188494632775162072476723082742162278106",
"51290059523696686423640911673878002808",
"111189745425083787416193117732482052981",
"23674267460915641076482528781100720287",
"252960576769738450334770185786697571376",
"80534693105316150130799233510783547133",
"21688169269926730258299722362376411486",
"109164263991393606603847762936861978649",
"95903916311746711069040020140982186823",
"266122580954322755706393726268978868603",
"11400051181770081842305313313287050223",
"47477580460385291301840782994802140956",
"130311105574851761660488108657463340424"
]
},
"target": {
"file": "net/netfilter/nf_tables_api.c"
}
},
{
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@cf5000a7787cbc10341091d37245a42c119d26c5",
"deprecated": false,
"id": "CVE-2023-52581-795353cb",
"signature_type": "Function",
"digest": {
"function_hash": "40187094748911278286210692150571782523",
"length": 188.0
},
"target": {
"function": "nft_trans_gc_queue_async",
"file": "net/netfilter/nf_tables_api.c"
}
},
{
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@ef99506eaf1dc31feff1adfcfd68bc5535a22171",
"deprecated": false,
"id": "CVE-2023-52581-849c7284",
"signature_type": "Line",
"digest": {
"threshold": 0.9,
"line_hashes": [
"211400286270114662272552790928838515932",
"133211344847217129881434344336699945072",
"267259107421390148582891921966971502855",
"30265231958071994552707599326867978989",
"223172336109764952642730258507394342673",
"188494632775162072476723082742162278106",
"51290059523696686423640911673878002808",
"111189745425083787416193117732482052981",
"23674267460915641076482528781100720287",
"252960576769738450334770185786697571376",
"80534693105316150130799233510783547133",
"21688169269926730258299722362376411486",
"109164263991393606603847762936861978649",
"95903916311746711069040020140982186823",
"266122580954322755706393726268978868603",
"11400051181770081842305313313287050223",
"47477580460385291301840782994802140956",
"130311105574851761660488108657463340424"
]
},
"target": {
"file": "net/netfilter/nf_tables_api.c"
}
},
{
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@4aea243b6853d06c1d160a9955b759189aa02b14",
"deprecated": false,
"id": "CVE-2023-52581-916e4063",
"signature_type": "Function",
"digest": {
"function_hash": "63867078134677050628539653373960974184",
"length": 258.0
},
"target": {
"function": "nft_trans_gc_queue_sync",
"file": "net/netfilter/nf_tables_api.c"
}
},
{
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a995a68e8a3b48533e47c856865d109a1f1a9d01",
"deprecated": false,
"id": "CVE-2023-52581-9431b49d",
"signature_type": "Function",
"digest": {
"function_hash": "63867078134677050628539653373960974184",
"length": 258.0
},
"target": {
"function": "nft_trans_gc_queue_sync",
"file": "net/netfilter/nf_tables_api.c"
}
},
{
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@09c85f2d21ab6b5acba31a037985b13e8e6565b8",
"deprecated": false,
"id": "CVE-2023-52581-a0f5c3a6",
"signature_type": "Function",
"digest": {
"function_hash": "40187094748911278286210692150571782523",
"length": 188.0
},
"target": {
"function": "nft_trans_gc_queue_async",
"file": "net/netfilter/nf_tables_api.c"
}
},
{
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@7cf055b43756b10aa2b851c927c940f5ed652125",
"deprecated": false,
"id": "CVE-2023-52581-a779adb2",
"signature_type": "Function",
"digest": {
"function_hash": "40187094748911278286210692150571782523",
"length": 188.0
},
"target": {
"function": "nft_trans_gc_queue_async",
"file": "net/netfilter/nf_tables_api.c"
}
},
{
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@09c85f2d21ab6b5acba31a037985b13e8e6565b8",
"deprecated": false,
"id": "CVE-2023-52581-b01ac20d",
"signature_type": "Line",
"digest": {
"threshold": 0.9,
"line_hashes": [
"211400286270114662272552790928838515932",
"133211344847217129881434344336699945072",
"267259107421390148582891921966971502855",
"30265231958071994552707599326867978989",
"223172336109764952642730258507394342673",
"188494632775162072476723082742162278106",
"51290059523696686423640911673878002808",
"111189745425083787416193117732482052981",
"23674267460915641076482528781100720287",
"252960576769738450334770185786697571376",
"80534693105316150130799233510783547133",
"21688169269926730258299722362376411486",
"109164263991393606603847762936861978649",
"95903916311746711069040020140982186823",
"266122580954322755706393726268978868603",
"11400051181770081842305313313287050223",
"47477580460385291301840782994802140956",
"130311105574851761660488108657463340424"
]
},
"target": {
"file": "net/netfilter/nf_tables_api.c"
}
},
{
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@09c85f2d21ab6b5acba31a037985b13e8e6565b8",
"deprecated": false,
"id": "CVE-2023-52581-b292b520",
"signature_type": "Line",
"digest": {
"threshold": 0.9,
"line_hashes": [
"314217076144337835711028762734029280174",
"254269828351414008734268164222580613707",
"138148698828389968866944399095852253016",
"220326645836937399339845095561456989177"
]
},
"target": {
"file": "include/net/netfilter/nf_tables.h"
}
},
{
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@cf5000a7787cbc10341091d37245a42c119d26c5",
"deprecated": false,
"id": "CVE-2023-52581-ba890adf",
"signature_type": "Function",
"digest": {
"function_hash": "63867078134677050628539653373960974184",
"length": 258.0
},
"target": {
"function": "nft_trans_gc_queue_sync",
"file": "net/netfilter/nf_tables_api.c"
}
},
{
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@7e5d732e6902eb6a37b35480796838a145ae5f07",
"deprecated": false,
"id": "CVE-2023-52581-bbc761c4",
"signature_type": "Line",
"digest": {
"threshold": 0.9,
"line_hashes": [
"314217076144337835711028762734029280174",
"254269828351414008734268164222580613707",
"138148698828389968866944399095852253016",
"220326645836937399339845095561456989177"
]
},
"target": {
"file": "include/net/netfilter/nf_tables.h"
}
},
{
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a995a68e8a3b48533e47c856865d109a1f1a9d01",
"deprecated": false,
"id": "CVE-2023-52581-c2393b78",
"signature_type": "Line",
"digest": {
"threshold": 0.9,
"line_hashes": [
"314217076144337835711028762734029280174",
"254269828351414008734268164222580613707",
"138148698828389968866944399095852253016",
"220326645836937399339845095561456989177"
]
},
"target": {
"file": "include/net/netfilter/nf_tables.h"
}
},
{
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a995a68e8a3b48533e47c856865d109a1f1a9d01",
"deprecated": false,
"id": "CVE-2023-52581-dd1fb8ff",
"signature_type": "Function",
"digest": {
"function_hash": "40187094748911278286210692150571782523",
"length": 188.0
},
"target": {
"function": "nft_trans_gc_queue_async",
"file": "net/netfilter/nf_tables_api.c"
}
},
{
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@4aea243b6853d06c1d160a9955b759189aa02b14",
"deprecated": false,
"id": "CVE-2023-52581-de9f27c8",
"signature_type": "Line",
"digest": {
"threshold": 0.9,
"line_hashes": [
"314217076144337835711028762734029280174",
"254269828351414008734268164222580613707",
"138148698828389968866944399095852253016",
"220326645836937399339845095561456989177"
]
},
"target": {
"file": "include/net/netfilter/nf_tables.h"
}
},
{
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@4aea243b6853d06c1d160a9955b759189aa02b14",
"deprecated": false,
"id": "CVE-2023-52581-e0079eaf",
"signature_type": "Function",
"digest": {
"function_hash": "40187094748911278286210692150571782523",
"length": 188.0
},
"target": {
"function": "nft_trans_gc_queue_async",
"file": "net/netfilter/nf_tables_api.c"
}
},
{
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@ef99506eaf1dc31feff1adfcfd68bc5535a22171",
"deprecated": false,
"id": "CVE-2023-52581-e24b9d10",
"signature_type": "Function",
"digest": {
"function_hash": "63867078134677050628539653373960974184",
"length": 258.0
},
"target": {
"function": "nft_trans_gc_queue_sync",
"file": "net/netfilter/nf_tables_api.c"
}
},
{
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@7cf055b43756b10aa2b851c927c940f5ed652125",
"deprecated": false,
"id": "CVE-2023-52581-f92e5c66",
"signature_type": "Function",
"digest": {
"function_hash": "63867078134677050628539653373960974184",
"length": 258.0
},
"target": {
"function": "nft_trans_gc_queue_sync",
"file": "net/netfilter/nf_tables_api.c"
}
}
]