В ядре Linux устранена следующая уязвимость:
iommu/vt-d: исправлено повреждение RB-дерева в пути ошибки зонда. Элемент RB-дерева info->node инициализируется нулем через kzalloc. Если
устройство не поддерживает ATS, вызов device_rbtree_insert()
пропущен.
Если последующий шаг проверки завершается неудачно, путь ошибки переходит к
device_rbtree_remove(), который неверно интерпретирует обнулённый узел как
корень дерева и повреждает RB-дерево устройства. Исправьте это, явно инициализировав RB-узел как пустой, используя
RB_CLEAR_NODE() во время инициализации и защиты удаления с помощью
RB_EMPTY_NODE().
Показать оригинальное описание (EN)
In the Linux kernel, the following vulnerability has been resolved: iommu/vt-d: Fix RB-tree corruption in probe error path The info->node RB-tree member is zero-initialized via kzalloc. If a device does not support ATS, the device_rbtree_insert() call is skipped. If a subsequent probe step fails, the error path jumps to device_rbtree_remove(), which misinterprets the zeroed node as a tree root and corrupts the device RB-tree. Fix this by explicitly initializing the RB-node as empty using RB_CLEAR_NODE() during initialization and guarding the removal with RB_EMPTY_NODE().
Характеристики атаки
Последствия
Строка CVSS v3.1