CVE-2024-42315

Summary

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 Software

VendorProductVersion RangeStatus
LinuxLinuxbd3bdb9e0d656f760b11d0c638d35d7f7068144d < 632fb232b6bbf8277edcbe9ecd4b4d98ecb122ebaffected
LinuxLinux92dcd7d6c6068bf4fd35a6f64d606e27d634807e < c052f775ee6ccacd3c97e4cf41a2a657e63d4259affected
LinuxLinuxd8fe01ad2d8ab33aaf8f2efad9e8f1dae11c4b0c < cd1c7858641384191ff7033fb1fc65dfcd559c6faffected
LinuxLinuxa3ff29a95fde16906304455aa8c0bd84eb770258 < a7ac198f8dba791e3144c4da48a5a9b95773ee4baffected
LinuxLinuxa3ff29a95fde16906304455aa8c0bd84eb770258 < 1d1970493c289e3f44b9ec847ed26a5dbdf56a62affected
LinuxLinuxa3ff29a95fde16906304455aa8c0bd84eb770258 < 89fc548767a2155231128cb98726d6d2ea1256c9affected
LinuxLinux5.10.190 < 5.10.232affected
LinuxLinux5.15.150 < 5.15.175affected
LinuxLinux6.2affected
LinuxLinux0 < 6.2unaffected
LinuxLinux5.10.232 <= 5.10.*unaffected
LinuxLinux5.15.175 <= 5.15.*unaffected
LinuxLinux6.6.44 <= 6.6.*unaffected
LinuxLinux6.10.3 <= 6.10.*unaffected
LinuxLinux6.11 <= *unaffected

Weaknesses

ADP Enrichment

CISA ADP Vulnrichment

  • SSVC:
  • Exploitation: none
    • Automatable: no
    • Technical Impact: partial

CVE Program Container

Additional References

References