В ядре Linux устранена следующая уязвимость:
ntfs: проверка корневых значений резидентного индекса при поиске
Резидентные значения $INDEX_ROOT содержат поля заголовка индекса, которые вызывающие
потреблять после поиска. Некоторые вызывающие абоненты уже проверяют части макета.
перед ходьбой записей, но эти чеки разбросаны и не покрывают
все инварианты корневого заголовка, такие как выравнивание elements_offset и ниже
согласованность связанного, index_length и выделенного_размера. Пути изменения размера резидентного корня теперь обеспечивают единообразие этих полей заголовка.
при этом размер значения изменяется: ntfs_ir_truncate() понижается
index.allocated_size перед уменьшением резидентного значения и
ntfs_ir_reparent() увеличивает резидентное значение перед публикацией более крупного значения.
корневой заголовок.
Таким образом, проверка времени поиска может охватывать эти инварианты.
не спотыкаясь о собственные пути изменения размера драйвера. Добавьте $INDEX_ROOT в таблицу размеров минимального резидентного значения и проверьте правильность
поля заголовка резидентного индекса перед возвратом атрибута из поиска. Требуются 8-байтовые выровненные поля заголовка индекса, разумное значение elements_offset,
index_length в пределах выделенного_размера, выделенный_размер в пределах резидента
значение и достаточно места для записи, по крайней мере, для заголовка записи индекса.
Общий валидатор уже отклоняет нерезидентные записи для только резидентные типы атрибутов, включая $INDEX_ROOT.
Показать оригинальное описание (EN)
In the Linux kernel, the following vulnerability has been resolved: ntfs: validate resident index root values on lookup Resident $INDEX_ROOT values carry index header fields that callers consume after lookup. Some callers already validate parts of the layout before walking entries, but those checks are scattered and do not cover all root header invariants, such as entries_offset alignment and lower bound, index_length, and allocated_size consistency. The resident root resize paths now keep these header fields consistent while the value size changes: ntfs_ir_truncate() lowers index.allocated_size before shrinking the resident value, and ntfs_ir_reparent() grows the resident value before publishing a larger root header. Lookup-time validation can therefore cover these invariants without tripping over the driver's own resize paths. Add $INDEX_ROOT to the minimum resident value size table and validate the resident index header fields before returning the attribute from lookup. Require 8-byte aligned index header fields, a sane entries_offset, an index_length within allocated_size, allocated_size within the resident value, and enough entry space for at least an index entry header. The shared validator already rejects non-resident records for resident-only attribute types, including $INDEX_ROOT.
Характеристики атаки
Последствия
Строка CVSS v3.1