CVE-2026-80807 in Linux
Сводка
по VulDB • 04.09.2026
В ядре Linux была устранена следующая уязвимость:
nilfs2: отклонение недопустимого индекса блока в ioctl для сборки мусора (GC)
Syzbot сообщил о повреждении списка, вызванном двойным вызовом list_add_tail() для bh->b_assoc_buffers внутри функции nilfs_lookup_dirty_data_buffers().
Анализ показал, что корневой причиной стало добавление страницы/фоліо с индексом страницы ULONG_MAX в кэш страниц через ioctl сборки мусора. Функция filemap_get_folios_tag(), вызываемая из nilfs_lookup_dirty_data_buffers(), неоднократно обнаруживает «грязное» фоліо с индексом страницы ULONG_MAX из-за переполнения индекса, что приводит к дублирующей обработке грязных буферов.
В качестве подготовительного шага ioctl сборки мусора загружает страницу/фоліо блока, который должен быть перемещен во время GC, и добавляет его в кэш страниц на основе информации из структуры nilfs_vdesc, передаваемой в качестве аргумента. Обычно это не вызывает проблем, поскольку библиотека пользовательского пространства для сбора мусора правильно конфигурирует структуру nilfs_vdesc. Однако, поскольку отсутствует проверка диапазона параметров, определяющих индекс страницы, запрос с искусственно созданными параметрами — такими как те, что генерируются Syzbot — может привести к добавлению страницы/фоліо с индексом страницы ULONG_MAX, вызывая описанную выше проблему.
Это исправление решает проблему путем проверки диапазонов 'vd_offset' и 'vd_vblocknr' в структуре nilfs_vdesc, которые определяют индекс страницы, тем самым предотвращая недопустимые добавления страниц/фоліо.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.