Medium · published March 18, 2026
In the Linux kernel, the following vulnerability has been resolved:
fs: ntfs3: fix infinite loop triggered by zero-sized ATTR_LIST
We found an infinite loop bug in the ntfs3 file system that can lead to a
Denial-of-Service (DoS) condition.
A malformed NTFS image can cause an infinite loop when an ATTR_LIST attribute
indicates a zero data size while the driver allocates memory for it.
When ntfs_load_attr_list() processes a resident ATTR_LIST with data_size set
to zero, it still allocates memory because of al_aligned(0). This creates an
inconsistent state where ni->attr_list.size is zero, but ni->attr_list.le is
non-null. This causes ni_enum_attr_ex to incorrectly assume that no attribute
list exists and enumerates only the primary MFT record. When it finds
ATTR_LIST, the code reloads it and restarts the enumeration, repeating
indefinitely. The mount operation never completes, hanging the kernel thread.
This patch adds validation to ensure that data_size is non-zero before memory
allocation. When a zero-sized ATTR_LIST is detected, the function returns
-EINVAL, preventing a DoS vulnerability.
| Product | Versions | Fixed in |
|---|---|---|
| linux/linux_kernel | ≥ 5.15, < 5.15.202 | 5.15.202 |
| linux/linux_kernel | ≥ 5.16, < 6.1.165 | 6.1.165 |
| linux/linux_kernel | ≥ 6.2, < 6.6.128 | 6.6.128 |
| linux/linux_kernel | ≥ 6.7, < 6.12.75 | 6.12.75 |
| linux/linux_kernel | ≥ 6.13, < 6.18.16 | 6.18.16 |
| linux/linux_kernel | ≥ 6.19, < 6.19.6 | 6.19.6 |