Обновление безопасности ядра Linux: устранена уязвимость use-after-free в ext4 (CVE-2026-92499)
В ядре Linux выявлена и устранена уязвимость в реализации файловой системы ext4, получившая идентификатор CVE-2026-92499. Проблема затрагивает механизм чтения каталогов (readdir) и проявляется при работе с повреждёнными структурами каталога.
Подробности
Уязвимости подвержены версии ядра Linux, содержащие уязвимый код ext4. Проблема возникает в функции ext4_readdir(), когда чтение возобновляется с недопустимой позиции. При вызове ext4_dir_llseek() cookie каталога инвалидируется, из-за чего ext4_readdir() выполняет повторное сканирование записей каталога с начала блока. При этом проверяется только нижняя граница rec_len перед переходом к следующей записи.
Повреждённое значение rec_len может привести к тому, что смещение окажется в позиции, где в блоке недостаточно места для полной записи каталога. В результате повторное сканирование либо само разыменовывает усечённую запись, либо передаёт её в __ext4_check_dir_entry(), которая читает de->rec_len до проверки диапазона. В приведённом в описании примере для 4 КиБ блока запись de2 начинается со смещения 4092: её четырёхбайтовое поле inode умещается в блоке, но rec_len начинается со смещения 4096 и пересекает границу. KASAN фиксирует чтение за границей как use-after-free, поскольку выход за пределы попадает в соседнюю освобождённую страницу, хотя сам буфер каталога всё ещё используется.
Минимальная безопасная длина записи зависит от типа записи: для шифрованных каталогов и каталогов с casefolding требуется восемь дополнительных байтов хеша, а корректный хвост контрольной суммы метаданных занимает всего 12 байт. Исправление кэширует состояние функции контрольных сумм метаданных и вычисляет минимальную длину записи каталога на основе формата на диске. Эта величина ограничивает как повторное сканирование, так и смещение, передаваемое в основной цикл. При обнаружении смещения в усечённом хвосте блока выводится сообщение, а остаток блока пропускается; смещение ровно на границе блока по-прежнему принимается. Значение CVSS в записи не указано.
Что делать
Рекомендуется установить обновление ядра Linux, содержащее исправление CVE-2026-92499, от производителя вашей операционной системы или дистрибутива. До применения обновления следует избегать монтирования и обработки каталогов ext4 из недоверенных источников, а также контролировать целостность файловых систем. После установки обновления требуется перезагрузка для активации нового ядра.
Уязвимость относится к классу use-after-free и может приводить к аварийному завершению работы ядра при обработке специально сформированного повреждённого каталога. Своевременное обновление ядра закрывает вектор атаки и исключает некорректное разыменование усечённых записей каталога.
Источник: CVE Project (cvelistV5)
