CVE-2025-71267

NONE EPSS 0.03%
Обновлено 18 марта 2026
Linux
Параметр Значение
Поставщик Linux
Публичный эксплойт Нет

В ядре Linux устранена следующая уязвимость: fs: ntfs3: исправлен бесконечный цикл, запускаемый ATTR_LIST нулевого размера. Мы обнаружили ошибку бесконечного цикла в файловой системе ntfs3, которая может привести к Состояние отказа в обслуживании (DoS). Неверно сформированный образ NTFS может вызвать бесконечный цикл, если атрибут ATTR_LIST указывает нулевой размер данных, пока драйвер выделяет для них память.

Когда ntfs_load_attr_list() обрабатывает резидентный ATTR_LIST с установленным data_size до нуля, он все равно выделяет память из-за al_aligned(0). Это создает несогласованное состояние, где ni->attr_list.size равно нулю, но ni->attr_list.le ненулевой. Это приводит к тому, что ni_enum_attr_ex ошибочно предполагает, что ни один атрибут list существует и перечисляет только основную запись MFT.

Когда он находит ATTR_LIST, код перезагружает его и перезапускает перечисление, повторяя на неопределенный срок. Операция монтирования никогда не завершается, что приводит к зависанию потока ядра. Этот патч добавляет проверку, гарантирующую, что data_size не равен нулю перед использованием памяти. распределение.

При обнаружении ATTR_LIST нулевого размера функция возвращает -EINVAL, предотвращающий DoS-уязвимость.

Показать оригинальное описание (EN)

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.