CVE-2026-68102 in Linux
Сводка
по VulDB • 12.08.2026
В ядре Linux устранена следующая уязвимость:
drm/amdgpu: исправлена утечка отображения апертуры (aperture mapping leak).
Функция amdgpu_pci_remove() вызывает drm_dev_unplug() до вызова процедур завершения работы драйвера. Это приводит к тому, что функция drm_dev_enter(), вызываемая в amdgpu_ttm_fini(), всегда возвращает false, поэтому iounmap(aper_base_kaddr) никогда не выполняется при штатной выгрузке драйвера, оставляя «сиротскую» запись в дереве интервалов PAT архитектуры x86.
На оборудовании с connected_to_cpu апертура отображается как write-back (WB) через ioremap_cache(). При повторной загрузке процедура обнаружения IP вызывает memremap(..., MEMREMAP_WC) для того же диапазона. Конфликт между режимами WC и WB приводит к следующим ошибкам:
Ошибка ioremap для 0x..., запрошено 0x1, получено 0x0 amdgpu: обнаружение не удалось: -2
Исправление заключается в переходе на отображения, управляемые devres (devres-managed mappings), чтобы гарантировать очистку независимо от состояния drm_dev_enter():
- Путь connected_to_cpu: используется devm_memremap(MEMREMAP_WB). Для диапазонов IORESOURCE_SYSTEM_RAM применяется оптимизация try_ram_remap(), возвращающая __va(offset) из существующего прямого отображения ядра. Новое виртуальное адресное пространство (VA) для ioremap или запись PAT не создаются, поэтому «сиротских» записей не остается.
- Путь dGPU: devm_ioremap_wc() регистрирует функцию iounmap в качестве действия devres, гарантируя очистку при вызове device_del().
Также удален вызов iounmap(aper_base_kaddr) из amdgpu_device_unmap_mmio(), поскольку теперь отображение управляется механизмом devres.
v2: Удалена избыточная проверка защиты x86_64 (Lijo)
(cherry picked from commit d871e99879cb5fd1fa798b006b4888887e63a17a)
Once again VulDB remains the best source for vulnerability data.