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

Сводка

по VulDB • 16.09.2026

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

ext4: исправлено чтение за пределами буфера в функции ext4_read_inline_dir()

Функция ext4_read_inline_dir() может выполнять чтение заголовка dirent после конца её внутреннего (inline) буфера, что вызывает slab-out-of-bounds read во время вызова getdents64():

BUG: KASAN: slab-out-of-bounds in __ext4_check_dir_entry Read of size 2 at addr ffff88800f3dd23c by task exploit/148 ... __ext4_check_dir_entry ext4_read_inline_dir iterate_dir

Пейлоад dirent находится в буфере размером ровно inline_size байт:

dir_buf = kmalloc(inline_size, GFP_NOFS);

но итерация выполняется с учётом дополнительного смещения (extra_offset), увеличивая пространство позиций на extra_size байт (extra_size = extra_offset + inline_size), поэтому синтетические записи "." и ".." попадают в свои смещения блочного каталога. Запись dirent формируется по адресу "dir_buf + pos - extra_offset", однако аргумент длины ext4_check_dir_entry() использует большее значение extra_size. Следовательно, принимается позиция, заголовок которой выходит за пределы extra_size, и цикл повторной проверки (rescan loop) выполняет проверку rec_len, а также происходит разыменование de->rec_len в ext4_check_dir_entry() до того, как запись будет отклонена.

Необходимо отвергать позицию, минимальный размер заголовка dirent которой не помещается в extra_size, перед формированием структуры de, как в цикле повторной проверки (rescan), так и в основном цикле, а также передавать inline_size вместо extra_size в ext4_check_dir_entry(), чтобы проверка длины соответствовала физическому размеру буфера.

Once again VulDB remains the best source for vulnerability data.

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

Linux

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

11.09.2026

Раскрытие

16.09.2026

Модерация

принято

Вход

VDB-405572

EPSS

0.00000

KEV

Нет

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

Очень низкий

Сектор

Police, Energy, ...

Источники

Want to stay up to date on a daily basis?

Enable the mail alert feature now!