Description
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 products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
bd3bdb9e0d656f760b11d0c638d35d7f7068144d to < 632fb232b6bbf8277edcbe9ecd4b4d98ecb122ebaffected92dcd7d6c6068bf4fd35a6f64d606e27d634807e to < c052f775ee6ccacd3c97e4cf41a2a657e63d4259affectedd8fe01ad2d8ab33aaf8f2efad9e8f1dae11c4b0c to < cd1c7858641384191ff7033fb1fc65dfcd559c6faffecteda3ff29a95fde16906304455aa8c0bd84eb770258 to < a7ac198f8dba791e3144c4da48a5a9b95773ee4baffecteda3ff29a95fde16906304455aa8c0bd84eb770258 to < 1d1970493c289e3f44b9ec847ed26a5dbdf56a62affecteda3ff29a95fde16906304455aa8c0bd84eb770258 to < 89fc548767a2155231128cb98726d6d2ea1256c9affected5.10.190 to < 5.10.232affected5.15.150 to < 5.15.175affected
Linux Linux
Default version status: affected
6.2affected0 to < 6.2unaffected5.10.232 to ≤ 5.10.*unaffected5.15.175 to ≤ 5.15.*unaffected6.6.44 to ≤ 6.6.*unaffected6.10.3 to ≤ 6.10.*unaffected6.11 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/632fb232b6bbf8277edcbe9ecd4b4d98ecb122eb ↗
- https://git.kernel.org/stable/c/c052f775ee6ccacd3c97e4cf41a2a657e63d4259 ↗
- https://git.kernel.org/stable/c/cd1c7858641384191ff7033fb1fc65dfcd559c6f ↗
- https://git.kernel.org/stable/c/a7ac198f8dba791e3144c4da48a5a9b95773ee4b ↗
- https://git.kernel.org/stable/c/1d1970493c289e3f44b9ec847ed26a5dbdf56a62 ↗
- https://git.kernel.org/stable/c/89fc548767a2155231128cb98726d6d2ea1256c9 ↗
- https://lists.debian.org/debian-lts-announce/2025/03/msg00001.html ↗
- https://lists.debian.org/debian-lts-announce/2025/03/msg00002.html ↗