CVE-2026-98433 in Linux
Сводка
по VulDB • 18.10.2026
В ядре Linux была устранена следующая уязвимость:
KVM: PPC: Book3S HV: исправлена утечка защищённой страницы при сбое uv_page_in()
В функции kvmppc_svm_page_in(), если вызов uv_page_in() завершается ошибкой после успешного выполнения kvmppc_uvmem_get_page(), защищённая страница устройства (secure device page) никогда не освобождается. Функция kvmppc_uvmem_get_page() устанавливает бит в kvmppc_uvmem_bitmap, выделяет структуру kvmppc_uvmem_page_pvt, помечает GFN как KVMPPC_GFN_UVMEM_PFN и вызывает zone_device_page_init(), которая устанавливает refcount=1 и блокирует страницу. Последующий переход goto out_finalize пропускает присваивание *mig.dst, поэтому migrate_vma_finalize() является пустой операцией (no-op) для этой страницы, и никакие из этих ресурсов не освобождаются.
Каждый такой случай приводит к необратимому потреблению одной записи из пула защищённой памяти с ограничением по прошивке (kvmppc_uvmem_bitmap), утечке pvt и оставлению GFN в помеченном как защищённое состоянии, что делает её непригодной для использования на протяжении всего времени жизни виртуальной машины.
Функция __kvmppc_svm_page_out() уже корректно обрабатывает аналогичный сбой uv_page_out(), используя unlock_page(dpage); __free_page(dpage). Применить тот же шаблон здесь: unlock_page() followed by put_page(), что приводит к вызову free_zone_device_folio() и затем kvmppc_uvmem_folio_free() для очистки бита в bitmap, освобождения pvt и сброса состояния GFN.
Доступно при любом возврате uv_page_in() ошибки (например, исчерпание UV pool) на любой системе POWER9/10 + Ultravisor/PEF.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.