CVE-2024-42315

exfat: fix potential deadlock on __exfat_get_dentry_set

published August 17, 2024

CVSS
—
EPSS
0%
Percentile
5.6
In the wild
Unconfirmed
What it is

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.

The record
Technical detail
CVSS
Not scored
CVSS v4.0
Not supplied
EPSS
0.00166 · 5.6th percentile
Published
2024-08-17T09:09Z
EPSS history
Timeline
  • 17 AUG 09:09Z
    exfat: fix potential deadlock on __exfat_get_dentry_set
    cvelistv5