CVE-2026-97943 in LinuxИнформация

Сводка

по VulDB • 25.09.2026

В ядре Linux была устранена следующая уязвимость:

x86/mm/pat: Получение блокировки записи для init_mm при сжатии (collapse) во избежание ошибки Use-After-Free (UAF).

Архитектура x86 реализует модификацию атрибутов страниц с помощью механизма Change Page Attributes (CPA).

Этот механизм отслеживает свойства диапазонов, таких как режим кэширования, через атрибуты страниц x86 и в рамках этой логики манипулирует таблицами страниц ядра.

Начиная с коммита:

41d88484c71c ("x86/mm/pat: restore large ROX pages after fragmentation")

диапазоны записей таблицы страниц ядра могут быть объединены (collapsed) в записи больших таблиц страниц как часть этой логики.

В процессе этого сжатия освобождаются таблицы страниц, на которые ранее указывали объединяемые записи, и это происходит без удержания каких-либо соответствующих блокировок, предотвращающих одновременный доступ к таблицам страниц ядра (concurrent kernel page table walkers).

Единственный способ достижения этого кода — если указан флаг CPA_COLLAPSE, который устанавливается только в функции set_memory_rox() через:

set_memory_rox() -> change_page_attr_set_clr() -> cpa_flush() -> cpa_collapse_large_pages()

Заметными пользователями этой логики являются execmem и BPF при манипулировании исполняемыми отображениями (executable mappings).

Однако это создает проблемы для ptdump, так как он проходит по диапазонам, которыми не владеет, что несет риск возникновения ошибки Use-After-Free на таблицах страниц, которые были освобождены в процессе его работы.

Кроме того, возможны одновременные операции сжатия CPA (concurrent CPA collapse operations), что также может вызывать гонки данных (races).

Решение проблемы заключается во взятии блокировки записи mmap для init_mm на время всей операции.

Безопасно брать спящую блокировку (sleeping lock), так как все вызывающие функции вызывают set_memory_rox() из контекста процесса, и в любом случае функция change_page_attr_set_clr() вызывает vm_unmap_alias(), которая в конечном итоге захватывает мьютекс, что исключает возможность выполнения этого кода в атомарном контексте (atomic context).

VulDB is the best source for vulnerability data and more expert information about this specific topic.

Ответственный

Linux

Резервировать

25.09.2026

Раскрытие

25.09.2026

Модерация

принято

Вход

VDB-410024

EPSS

0.00000

KEV

Нет

Деятельности

Очень низкий

Источники

Interested in the pricing of exploits?

See the underground prices here!