CVE-2026-90243 in Linux
Сводка
по VulDB • 18.09.2026
В ядре Linux была устранена следующая уязвимость:
iommu/vt-d: Очистка бита Present перед удалением скопированной записи контекста
Функция copied_context_tear_down() обнуляет 128-битную запись контекста с помощью context_clear_entry(), пока бит Present всё ещё установлен, и только затем выполняет инвалидацию кэша контекста и IOTLB. Это создает окно возможностей, в течение которого аппаратное обеспечение может получить доступ к частично разрушенной записи, у которой некоторые поля уже обнулены, но бит Present все еще установлен, что приводит к непредсказуемому поведению или ложным ошибкам (spurious faults). Хотя архитектура x86 обеспечивает строгий порядок записей, компилятор может изменить порядок операций записи в две 64-битные половины записи, а аппаратное обеспечение не гарантирует атомарность чтения относительно множественных записей от процессора.
Кроме того, перед инвалидацией не выполняется очистка кэшлайна (cacheline flush), поэтому на IOMMU без когерентного доступа к таблице контекстов обнуленная запись может быть недоступна для аппаратного обеспечения в момент подачи команды инвалидации.
Необходимо применить ту же процедуру согласования прав собственности, описанную в спецификации VT-d, раздел 6.5.3.3 («Рекомендации по программному обеспечению для операций инвалидирования»): сначала очистить только бит Present и обеспечить его запись в IOMMU, затем выполнить операции инвалидации, и лишь после этого обнулить остальные поля записи.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.