Lucene search

K
cveLinuxCVE-2024-41042
HistoryJul 29, 2024 - 3:15 p.m.

CVE-2024-41042

2024-07-2915:15:12
Linux
web.nvd.nist.gov
34
linux kernel
netfilter
nf_tables
vulnerability
ruleset load time
crash bug

AI Score

7

Confidence

Low

EPSS

0

Percentile

13.7%

In the Linux kernel, the following vulnerability has been resolved:

netfilter: nf_tables: prefer nft_chain_validate

nft_chain_validate already performs loop detection because a cycle will
result in a call stack overflow (ctx->level >= NFT_JUMP_STACK_SIZE).

It also follows maps via ->validate callback in nft_lookup, so there
appears no reason to iterate the maps again.

nf_tables_check_loops() and all its helper functions can be removed.
This improves ruleset load time significantly, from 23s down to 12s.

This also fixes a crash bug. Old loop detection code can result in
unbounded recursion:

BUG: TASK stack guard page was hit at …
Oops: stack guard page: 0000 [#1] PREEMPT SMP KASAN
CPU: 4 PID: 1539 Comm: nft Not tainted 6.10.0-rc5+ #1
[…]

with a suitable ruleset during validation of register stores.

I can’t see any actual reason to attempt to check for this from
nft_validate_register_store(), at this point the transaction is still in
progress, so we don’t have a full picture of the rule graph.

For nf-next it might make sense to either remove it or make this depend
on table->validate_state in case we could catch an error earlier
(for improved error reporting to userspace).

Affected configurations

Vulners
Node
linuxlinux_kernelRange3.134.19.320
OR
linuxlinux_kernelRange4.20.05.4.282
OR
linuxlinux_kernelRange5.5.05.10.224
OR
linuxlinux_kernelRange5.11.05.15.165
OR
linuxlinux_kernelRange5.16.06.1.105
OR
linuxlinux_kernelRange6.2.06.6.46
OR
linuxlinux_kernelRange6.7.06.9.10
OR
linuxlinux_kernelRange6.10.0
VendorProductVersionCPE
linuxlinux_kernel*cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*

CNA Affected

[
  {
    "product": "Linux",
    "vendor": "Linux",
    "defaultStatus": "unaffected",
    "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
    "programFiles": [
      "net/netfilter/nf_tables_api.c"
    ],
    "versions": [
      {
        "version": "20a69341f2d0",
        "lessThan": "1947e4c3346f",
        "status": "affected",
        "versionType": "git"
      },
      {
        "version": "20a69341f2d0",
        "lessThan": "cd4348e0a502",
        "status": "affected",
        "versionType": "git"
      },
      {
        "version": "20a69341f2d0",
        "lessThan": "31c35f9f89ef",
        "status": "affected",
        "versionType": "git"
      },
      {
        "version": "20a69341f2d0",
        "lessThan": "8246b7466c8d",
        "status": "affected",
        "versionType": "git"
      },
      {
        "version": "20a69341f2d0",
        "lessThan": "b6b6e430470e",
        "status": "affected",
        "versionType": "git"
      },
      {
        "version": "20a69341f2d0",
        "lessThan": "717c91c6ed73",
        "status": "affected",
        "versionType": "git"
      },
      {
        "version": "20a69341f2d0",
        "lessThan": "9df785aeb7dc",
        "status": "affected",
        "versionType": "git"
      },
      {
        "version": "20a69341f2d0",
        "lessThan": "cff3bd012a95",
        "status": "affected",
        "versionType": "git"
      }
    ]
  },
  {
    "product": "Linux",
    "vendor": "Linux",
    "defaultStatus": "affected",
    "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
    "programFiles": [
      "net/netfilter/nf_tables_api.c"
    ],
    "versions": [
      {
        "version": "3.13",
        "status": "affected"
      },
      {
        "version": "0",
        "lessThan": "3.13",
        "status": "unaffected",
        "versionType": "custom"
      },
      {
        "version": "4.19.320",
        "lessThanOrEqual": "4.19.*",
        "status": "unaffected",
        "versionType": "custom"
      },
      {
        "version": "5.4.282",
        "lessThanOrEqual": "5.4.*",
        "status": "unaffected",
        "versionType": "custom"
      },
      {
        "version": "5.10.224",
        "lessThanOrEqual": "5.10.*",
        "status": "unaffected",
        "versionType": "custom"
      },
      {
        "version": "5.15.165",
        "lessThanOrEqual": "5.15.*",
        "status": "unaffected",
        "versionType": "custom"
      },
      {
        "version": "6.1.105",
        "lessThanOrEqual": "6.1.*",
        "status": "unaffected",
        "versionType": "custom"
      },
      {
        "version": "6.6.46",
        "lessThanOrEqual": "6.6.*",
        "status": "unaffected",
        "versionType": "custom"
      },
      {
        "version": "6.9.10",
        "lessThanOrEqual": "6.9.*",
        "status": "unaffected",
        "versionType": "custom"
      },
      {
        "version": "6.10",
        "lessThanOrEqual": "*",
        "status": "unaffected",
        "versionType": "original_commit_for_fix"
      }
    ]
  }
]

AI Score

7

Confidence

Low

EPSS

0

Percentile

13.7%