Lucene search

K
cveLinuxCVE-2024-42315
HistoryAug 17, 2024 - 9:15 a.m.

CVE-2024-42315

2024-08-1709:15:11
CWE-667
Linux
web.nvd.nist.gov
26
linux kernel
exfat
vulnerability
deadlock
allocation

CVSS3

5.5

Attack Vector

LOCAL

Attack Complexity

LOW

Privileges Required

LOW

User Interaction

NONE

Scope

UNCHANGED

Confidentiality Impact

NONE

Integrity Impact

NONE

Availability Impact

HIGH

CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H

AI Score

6.6

Confidence

Low

EPSS

0

Percentile

5.0%

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

exfat: fix potential deadlock on __exfat_get_dentry_set

When accessing a file with more entries than ES_MAX_ENTRY_NUM, the bh-array
is allocated in __exfat_get_entry_set. The problem is that the bh-array is
allocated with GFP_KERNEL. It does not make sense. In the following cases,
a deadlock for sbi->s_lock between the two processes may occur.

   CPU0                CPU1
   ----                ----

kswapd
balance_pgdat
lock(fs_reclaim)
exfat_iterate
lock(&sbi->s_lock)
exfat_readdir
exfat_get_uniname_from_ext_entry
exfat_get_dentry_set
__exfat_get_dentry_set
kmalloc_array

lock(fs_reclaim)

evict
exfat_evict_inode
lock(&sbi->s_lock)

To fix this, let’s allocate bh-array with GFP_NOFS.

Affected configurations

Nvd
Vulners
Node
linuxlinux_kernelRange6.26.6.44
OR
linuxlinux_kernelRange6.76.10.3
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": [
      "fs/exfat/dir.c"
    ],
    "versions": [
      {
        "version": "a3ff29a95fde",
        "lessThan": "a7ac198f8dba",
        "status": "affected",
        "versionType": "git"
      },
      {
        "version": "a3ff29a95fde",
        "lessThan": "1d1970493c28",
        "status": "affected",
        "versionType": "git"
      },
      {
        "version": "a3ff29a95fde",
        "lessThan": "89fc548767a2",
        "status": "affected",
        "versionType": "git"
      }
    ]
  },
  {
    "product": "Linux",
    "vendor": "Linux",
    "defaultStatus": "affected",
    "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
    "programFiles": [
      "fs/exfat/dir.c"
    ],
    "versions": [
      {
        "version": "6.2",
        "status": "affected"
      },
      {
        "version": "0",
        "lessThan": "6.2",
        "status": "unaffected",
        "versionType": "custom"
      },
      {
        "version": "6.6.44",
        "lessThanOrEqual": "6.6.*",
        "status": "unaffected",
        "versionType": "custom"
      },
      {
        "version": "6.10.3",
        "lessThanOrEqual": "6.10.*",
        "status": "unaffected",
        "versionType": "custom"
      },
      {
        "version": "6.11",
        "lessThanOrEqual": "*",
        "status": "unaffected",
        "versionType": "original_commit_for_fix"
      }
    ]
  }
]

CVSS3

5.5

Attack Vector

LOCAL

Attack Complexity

LOW

Privileges Required

LOW

User Interaction

NONE

Scope

UNCHANGED

Confidentiality Impact

NONE

Integrity Impact

NONE

Availability Impact

HIGH

CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H

AI Score

6.6

Confidence

Low

EPSS

0

Percentile

5.0%