Medium · published January 21, 2025
In the Linux kernel, the following vulnerability has been resolved:
exfat: fix the infinite loop in exfat_readdir()
If the file system is corrupted so that a cluster is linked to
itself in the cluster chain, and there is an unused directory
entry in the cluster, 'dentry' will not be incremented, causing
condition 'dentry < max_dentries' unable to prevent an infinite
loop.
This infinite loop causes s_lock not to be released, and other
tasks will hang, such as exfat_sync_fs().
This commit stops traversing the cluster chain when there is unused
directory entry in the cluster to avoid this infinite loop.
| Product | Versions | Fixed in |
|---|---|---|
| linux/linux_kernel | ≥ 5.7, < 6.1.125 | 6.1.125 |
| linux/linux_kernel | ≥ 6.2, < 6.6.72 | 6.6.72 |
| linux/linux_kernel | ≥ 6.7, < 6.12.10 | 6.12.10 |
| linux/linux_kernel | all versions | — |
| linux/linux_kernel | all versions | — |
| linux/linux_kernel | all versions | — |
| linux/linux_kernel | all versions | — |
| linux/linux_kernel | all versions | — |
| linux/linux_kernel | all versions | — |