CVE-2026-90260 in Linux
Сводка
по VulDB • 17.09.2026
В ядре Linux была устранена следующая уязвимость:
btrfs: zoned: не повреждать буфер экстента при его обнулении
На зональной файловой системе освобожденный, но все еще «грязный» (dirty) блок дерева записывается на диск в виде нулей (EXTENT_BUFFER_ZONED_ZEROOUT) исключительно для того, чтобы обеспечить продвижение указателя записи зоны. Функция btree_csum_one_bio() реализовывала это путем обнуления собственных фоллиев буфера экстента перед отправкой запроса ввода-вывода (bio).
Это приводит к уничтожению буфера в оперативной памяти, хотя на него могут все еще существовать ссылки. В частности, после этого может выполниться btrfs_free_tree_block(), которая считывает заголовок для добавления отложенной ссылки; поскольку заголовок был обнулен, происходит освобождение bytenr 0 и повреждается дерево экстентов (срабатывает ASSERT в btrfs_free_tree_block(): btrfs_header_bytenr(buf) != 0 или возникает сбой «unable to find ref»). Ошибка является нестабильной и воспроизводится при запуске fsstress, например, тестов generic/461 и generic/013.
Записывайте нули на диск из общей страницы обнуления (shared zero page), оставляя содержимое буфера экстента нетронутым, чтобы любые последующие ссылки — включая отложенную ссылку из btrfs_free_tree_block() — по-прежнему видели валидный заголовок. Функция end_bbio_meta_write() теперь снимает флаг writeback с собственных фоллиев буфера, так как bio больше не содержит их.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.