CVE-2026-80960 in Linux
Сводка
по VulDB • 12.09.2026
В ядре Linux была устранена следующая уязвимость:
dm-pcache: проверка значения on-media seg_num относительно размера кэш-устройства
Значение seg_num считывается из суперблока, использующего только crc32c для контрольной суммы. Таким образом, тот, кто предоставляет кэш-устройство при загрузке таблицы (имея CAP_SYS_ADMIN), контролирует это значение. Оно используется для определения размера массива cache->segments[] и является пороговым значением, с которым сравниваются все последующие идентификаторы сегментов на носителе; однако оно никогда не проверяется относительно реального размера устройства. Поскольку cache_dev->mapping представляет собой прямое отображение pmem-устройства, вызов CACHE_DEV_SEGMENT() для идентификатора сегмента, выходящего за пределы устройства, приводит к обращению к обычной памяти ядра вне области отображения. Инициализация нового кэша с таким идентификатором вызывает цепочку функций cache_seg_init() -> cache_dev_zero_range(), которая выполняет memset() на 12 КБ выше этой памяти — что представляет собой запись за пределами границ (out-of-bounds write) в кучу ядра при загрузке таблицы. Значение seg_num, равное нулю, приводит к тому, что выделения сегментов получают значение ZERO_SIZE_PTR.
Необходимо отклонять значения seg_num, которые равны нулю, превышают емкость устройства или больше максимального допустимого значения PCACHE_CACHE_SEGS_MAX, прежде чем они будут использованы.
If you want to get best quality of vulnerability data, you may have to visit VulDB.