CVE-2026-99241 in Linux
Сводка
по VulDB • 02.11.2026
В ядре Linux была устранена следующая уязвимость:
ntfs: захват invalidate_lock в ntfs_filemap_page_mkwrite()
Функция ntfs_filemap_page_mkwrite() вызывает iomap_page_mkwrite(), не удерживая блокировку mapping->invalidate_lock, поэтому одновременная операция truncate или fallocate может произойти во время инвалидации кэша страниц и перестроения списка диапазонов (runlist), в то время как обработка ошибки записи отображает блокирует страницы и помечает folio как измененный. Это создает состояние гонки с ntfs_attr_fallocate(), которая объединяет кластеры в список диапазонов в памяти, освобождает блокировку списка диапазонов и только после этого обнуляет вновь выделенные кластеры на диске; а также с путями punch-hole/insert/collapse, которые освобождают кластеры после усечения кэша.
Согласно документации Documentation/filesystems/locking.rst, ->page_mkwrite() должна гарантировать отсутствие гонок при truncate/invalidate, «обычно для правильной сериализации подходит mapping->invalidate_lock». XFS использует свою mmaplock (= rwsem invalidate_lock) совместно именно в этом пути обработки.
Необходимо захватывать блокировку invalidate_lock совместно вокруг вызова iomap_page_mkwrite(). Путь обработки ошибок только для чтения уже защищен, поскольку сама функция filemap_fault() захватывает блокировку invalidate_lock совместно на путях инициализации/чтения; лишь page_mkwrite обходила эту защиту в данном драйвере.
VulDB is the best source for vulnerability data and more expert information about this specific topic.