CVE-2026-98161: в ядре Linux уязвимость в nvdimm/pmem позволяет нарушить порядок сброса кэша перед записью
В подсистеме nvdimm/pmem ядра Linux обнаружена уязвимость, при которой ошибка синхронного сброса (REQ_PREFLUSH) не останавливает последующую запись данных в энергонезависимую память. Это может привести к нарушению гарантий целостности и порядка операций ввода-вывода. Проблема затрагивает системы, использующие NVDIMM/persistent memory, и уже исправлена в основном ядре.
Подробности
Уязвимость затрагивает продукт Linux (ядро Linux). В функции pmem_submit_bio() драйвер pmem фиксировал ошибку, возникшую при выполнении операции REQ_PREFLUSH, однако продолжал копировать данные bio и затем мог перезаписать эту ошибку успешным результатом flush-операции REQ_FUA. В результате запись данных выполнялась уже после неудавшегося предварительного сброса, а bio могло завершиться успешно, несмотря на нарушение барьера упорядочивания. Подобное поведение подрывает саму идею PREFLUSH как гаранта того, что все предыдущие данные физически закреплены в носителе до начала новой записи. На устройствах persistent memory это критично: данные, которые должны были быть зафиксированы в строгом порядке, могли оказаться потерянными или записанными не в той последовательности при сбое питания или перезагрузке. Значения CVSS в записи CVE не указаны, однако характер дефекта относится к классу нарушений целостности и порядка операций ввода-вывода. Исправление меняет логику работы: теперь REQ_PREFLUSH выполняется синхронно до обращения к данным bio, и если сброс завершается ошибкой, то и само bio завершается с этой ошибкой. Асинхронная цепочка flush-операций сохраняется для REQ_FUA — к этому моменту копирование данных уже завершено, и родительское bio может дождаться связанного flush-bio.Что делать
Основная рекомендация — обновить ядро Linux до версии, содержащей исправление для CVE-2026-98161. Исправление распространяется через стандартные каналы обновлений дистрибутивов; администраторам следует проверить наличие соответствующего патча у поставщика своей ОС и применить его. До установки обновления возможные меры снижения риска ограничены, поскольку уязвимость находится на уровне драйвера и не имеет простых конфигурационных митигаций. В качестве временных мер можно: - воздержаться от сценариев, критичных к порядку фиксации данных на NVDIMM/pmem, если это допустимо для рабочей нагрузки; - обеспечить надёжное резервное копирование и защиту от внезапного отключения питания; - ограничить доступ к системам, использующим persistent memory, для недоверенных пользователей и процессов. После обновления стоит убедиться, что системы с NVDIMM корректно прошли перезагрузку и что целостность данных сохранена.Итог
CVE-2026-98161 — это дефект упорядочивания операций ввода-вывода в драйвере nvdimm/pmem, из-за которого ошибка предварительного сброса могла игнорироваться, а запись данных — выполняться с нарушением барьера. Исправление делает PREFLUSH синхронным и корректно распространяет ошибку на всё bio. Всем, кто использует NVDIMM или persistent memory на Linux, рекомендуется как можно скорее обновить ядро.Источник: CVE Project (cvelistV5)
