Ad

CVE-2026-89492

CRITICAL CVSS 3.1: 9,8 EPSS 0.64%
Обновлено 21 сентября 2026
Linux
Параметр Значение
CVSS 9,8 (CRITICAL)
Поставщик Linux
Публичный эксплойт Нет

В ядре Linux устранена следующая уязвимость: ocfs2: проверка количества записей индекса каталога при чтении метаданных. ocfs2_validate_dx_leaf() и ocfs2_validate_dx_root() проверяют ECC и подпись блока индексированного каталога до того, как он достигнет более высокого уровня вызывающие абоненты, но ни один из валидаторов не ограничивает количество ocfs2_dx_entry_list против емкости блока, который их удерживает. ocfs2_dx_dir_search() затем идет for (i = 0; i <le16_to_cpu(entry_list->de_num_used); i++) dx_entry = &entry_list->de_entries[i]; над записями de_num_used без проверки границ. вход_список либо dx_leaf->dl_list (из ocfs2_read_dx_leaf) или, для встроенного корня, dx_root->dr_entries. Созданный образ на диске может установить de_num_used (и de_count, который представляет собой границу __counted_by_le() для de_entries) до 0xffff и сделать так, чтобы проход читался далеко за концом блока метаданных размером 4 КБ, давая чтение плиты за пределами границ, доступное из любого поиска пути, stat() или open() в индексированном каталоге после монтирования образа. Зафиксируйте 775c17386a6f («ocfs2: проверьте поля списка экстентов dx_root во время чтение блока") уже ограничивает dr_list для невстроенного dx_root, но осталось встроенный путь dr_entries и dx_leaf dl_list не отмечены.

Добавьте одинаковая проверка времени чтения для обоих списков записей: de_count должен равняться значению емкость блока (ocfs2_dx_entries_per_leaf()/per_root()) и de_num_used не должно превышать de_count, отклоняя поврежденные метаданные с помощью -EFSCORRUPTED до того, как ocfs2_dx_dir_search() сможет обнаружить запись, выходящую за пределы диапазона. массив. de_count всегда записывается точно как емкость блока, когда лист или встроенный корень отформатирован, поэтому проверка на равенство не отклоняет никакие действительные изображение. Обнаружен с помощью автоматизированного инструмента исследования безопасности 0sec (https://0sec.ai).

Показать оригинальное описание (EN)

In the Linux kernel, the following vulnerability has been resolved: ocfs2: validate directory-index entry counts when reading metadata ocfs2_validate_dx_leaf() and ocfs2_validate_dx_root() check the ECC and signature of an indexed-directory block before it reaches higher-level callers, but neither validator bounds the ocfs2_dx_entry_list counts against the capacity of the block that holds them. ocfs2_dx_dir_search() then walks for (i = 0; i < le16_to_cpu(entry_list->de_num_used); i++) dx_entry = &entry_list->de_entries[i]; over de_num_used entries with no bounds check. entry_list is either dx_leaf->dl_list (from ocfs2_read_dx_leaf) or, for an inline root, dx_root->dr_entries. A crafted on-disk image can set de_num_used (and de_count, which is the __counted_by_le() bound of de_entries) to 0xffff and make the walk read far past the end of the 4KB metadata block, giving a slab out-of-bounds read reachable from any path lookup, stat() or open() on an indexed directory once the image is mounted. Commit 775c17386a6f ("ocfs2: validate dx_root extent list fields during block read") already bounds dr_list for the non-inline dx_root, but left the inline dr_entries path and the dx_leaf dl_list unchecked. Add the same read-time validation for both entry lists: de_count must equal the capacity of the block (ocfs2_dx_entries_per_leaf()/per_root()) and de_num_used must not exceed de_count, rejecting corrupted metadata with -EFSCORRUPTED before ocfs2_dx_dir_search() can walk an out-of-range entry array. de_count is always written as exactly the block capacity when a leaf or inline root is formatted, so the equality check does not reject any valid image. Found by 0sec automated security-research tooling (https://0sec.ai).

Характеристики атаки

Способ атаки
По сети
Атака возможна удалённо
Сложность
Низкая
Легко эксплуатировать
Нужны права
Не требуются
Права не нужны
Участие пользователя
Не требуется
Не нужно действие пользователя

Последствия

Конфиденциальность
Высокое
Полная утечка данных
Целостность
Высокое
Полная модификация данных
Доступность
Высокое
Полный отказ в обслуживании

Строка CVSS v3.1