In the Linux kernel, the following vulnerability has been resolved:
netfilter: nf_tables: reject new basechain after table flag update
When dormant flag is toggled, hooks are disabled in the commit phase by iterating over current chains in table (existing and new).
The following configuration allows for an inconsistent state:
add table x add chain x y { type filter hook input priority 0; } add table x { flags dormant; } add chain x w { type filter hook input priority 1; }
which triggers the following warning when trying to unregister chain w which is already unregistered.
[ 127.322252] WARNING: CPU: 7 PID: 1211 at net/netfilter/core.c:50 1 _nfunregisternethook+0x21a/0x260 [...] [ 127.322519] Call Trace: [ 127.322521] <TASK> [ 127.322524] ? _warn+0x9f/0x1a0 [ 127.322531] ? _nfunregisternethook+0x21a/0x260 [ 127.322537] ? reportbug+0x1b1/0x1e0 [ 127.322545] ? handlebug+0x3c/0x70 [ 127.322552] ? excinvalidop+0x17/0x40 [ 127.322556] ? asmexcinvalidop+0x1a/0x20 [ 127.322563] ? kasansavefreeinfo+0x3b/0x60 [ 127.322570] ? _nfunregisternethook+0x6a/0x260 [ 127.322577] ? _nfunregisternethook+0x21a/0x260 [ 127.322583] ? _nfunregisternethook+0x6a/0x260 [ 127.322590] ? _nftablesunregisterhook+0x8a/0xe0 [nftables] [ 127.322655] nfttabledisable+0x75/0xf0 [nftables] [ 127.322717] nftablescommit+0x2571/0x2620 [nftables]
[
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@41bad13c0e8a5a2b47a7472cced922555372daab",
"deprecated": false,
"digest": {
"threshold": 0.9,
"line_hashes": [
"164654396734366873791719709303866854164",
"255541879721280115067597608019197172953",
"1547100881612132854284468349552339843"
]
},
"target": {
"file": "net/netfilter/nf_tables_api.c"
},
"id": "CVE-2024-35900-1c014e83",
"signature_version": "v1",
"signature_type": "Line"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@8ba81dca416adf82fc5a2a23abc1a8cc02ad32fb",
"deprecated": false,
"digest": {
"function_hash": "205023411730094684580394788308206904612",
"length": 2814.0
},
"target": {
"function": "nf_tables_addchain",
"file": "net/netfilter/nf_tables_api.c"
},
"id": "CVE-2024-35900-39ffc744",
"signature_version": "v1",
"signature_type": "Function"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@420132bee3d0136b7fba253a597b098fe15493a7",
"deprecated": false,
"digest": {
"threshold": 0.9,
"line_hashes": [
"247002798640341548277113939888972198922",
"58092005057679734973104168732721708210",
"76971717727422992095317535073315128512"
]
},
"target": {
"file": "net/netfilter/nf_tables_api.c"
},
"id": "CVE-2024-35900-4121ab79",
"signature_version": "v1",
"signature_type": "Line"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@41bad13c0e8a5a2b47a7472cced922555372daab",
"deprecated": false,
"digest": {
"function_hash": "319127801540826698341231571804807589",
"length": 2522.0
},
"target": {
"function": "nf_tables_addchain",
"file": "net/netfilter/nf_tables_api.c"
},
"id": "CVE-2024-35900-437e033f",
"signature_version": "v1",
"signature_type": "Function"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@7b6fba6918714afee3e17796113ccab636255c7b",
"deprecated": false,
"digest": {
"threshold": 0.9,
"line_hashes": [
"175962373313671171601778619865875325302",
"106716047333643588256519718782797954166",
"157609156957562451634339533069543534972"
]
},
"target": {
"file": "net/netfilter/nf_tables_api.c"
},
"id": "CVE-2024-35900-74b4abba",
"signature_version": "v1",
"signature_type": "Line"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@745cf6a843896cdac8766c74379300ed73c78830",
"deprecated": false,
"digest": {
"function_hash": "118312672772612018643395305084814206078",
"length": 2895.0
},
"target": {
"function": "nf_tables_addchain",
"file": "net/netfilter/nf_tables_api.c"
},
"id": "CVE-2024-35900-7763fb0e",
"signature_version": "v1",
"signature_type": "Function"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@6d12f21f8bbe23fde25b77c2bf5973c136b8bef8",
"deprecated": false,
"digest": {
"threshold": 0.9,
"line_hashes": [
"164654396734366873791719709303866854164",
"255541879721280115067597608019197172953",
"1547100881612132854284468349552339843"
]
},
"target": {
"file": "net/netfilter/nf_tables_api.c"
},
"id": "CVE-2024-35900-7fc2a20a",
"signature_version": "v1",
"signature_type": "Line"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@e95bb4cba94c018be24b11f017d1c55dd6cda31a",
"deprecated": false,
"digest": {
"threshold": 0.9,
"line_hashes": [
"247002798640341548277113939888972198922",
"58092005057679734973104168732721708210",
"76971717727422992095317535073315128512"
]
},
"target": {
"file": "net/netfilter/nf_tables_api.c"
},
"id": "CVE-2024-35900-8385c98a",
"signature_version": "v1",
"signature_type": "Line"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@6d12f21f8bbe23fde25b77c2bf5973c136b8bef8",
"deprecated": false,
"digest": {
"function_hash": "124168393082658653191325979735143967323",
"length": 2229.0
},
"target": {
"function": "nf_tables_addchain",
"file": "net/netfilter/nf_tables_api.c"
},
"id": "CVE-2024-35900-883ff7c9",
"signature_version": "v1",
"signature_type": "Function"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@7b6fba6918714afee3e17796113ccab636255c7b",
"deprecated": false,
"digest": {
"function_hash": "276669754950498868038583628874749506640",
"length": 2790.0
},
"target": {
"function": "nf_tables_addchain",
"file": "net/netfilter/nf_tables_api.c"
},
"id": "CVE-2024-35900-9350772d",
"signature_version": "v1",
"signature_type": "Function"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@745cf6a843896cdac8766c74379300ed73c78830",
"deprecated": false,
"digest": {
"threshold": 0.9,
"line_hashes": [
"175962373313671171601778619865875325302",
"106716047333643588256519718782797954166",
"10976189580592944178660112382000863667"
]
},
"target": {
"file": "net/netfilter/nf_tables_api.c"
},
"id": "CVE-2024-35900-b13cd40e",
"signature_version": "v1",
"signature_type": "Line"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@e95bb4cba94c018be24b11f017d1c55dd6cda31a",
"deprecated": false,
"digest": {
"function_hash": "11743288893022477583220568264764796874",
"length": 2867.0
},
"target": {
"function": "nf_tables_addchain",
"file": "net/netfilter/nf_tables_api.c"
},
"id": "CVE-2024-35900-c4ed5b0a",
"signature_version": "v1",
"signature_type": "Function"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@994209ddf4f430946f6247616b2e33d179243769",
"deprecated": false,
"digest": {
"threshold": 0.9,
"line_hashes": [
"247002798640341548277113939888972198922",
"58092005057679734973104168732721708210",
"76971717727422992095317535073315128512"
]
},
"target": {
"file": "net/netfilter/nf_tables_api.c"
},
"id": "CVE-2024-35900-c600785a",
"signature_version": "v1",
"signature_type": "Line"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@420132bee3d0136b7fba253a597b098fe15493a7",
"deprecated": false,
"digest": {
"function_hash": "11743288893022477583220568264764796874",
"length": 2867.0
},
"target": {
"function": "nf_tables_addchain",
"file": "net/netfilter/nf_tables_api.c"
},
"id": "CVE-2024-35900-c8459d77",
"signature_version": "v1",
"signature_type": "Function"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@994209ddf4f430946f6247616b2e33d179243769",
"deprecated": false,
"digest": {
"function_hash": "11743288893022477583220568264764796874",
"length": 2867.0
},
"target": {
"function": "nf_tables_addchain",
"file": "net/netfilter/nf_tables_api.c"
},
"id": "CVE-2024-35900-eab2fd78",
"signature_version": "v1",
"signature_type": "Function"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@8ba81dca416adf82fc5a2a23abc1a8cc02ad32fb",
"deprecated": false,
"digest": {
"threshold": 0.9,
"line_hashes": [
"175962373313671171601778619865875325302",
"106716047333643588256519718782797954166",
"10976189580592944178660112382000863667"
]
},
"target": {
"file": "net/netfilter/nf_tables_api.c"
},
"id": "CVE-2024-35900-f4aac0f0",
"signature_version": "v1",
"signature_type": "Line"
}
]