Katalog CVE

CVE-2026-98433

Niskie ryzyko· EPSS 5%
Opublikowano: Zaktualizowano: Przetłumaczono: NVD NIST

Prawdopodobieństwo exploitacji (EPSS)

Niskie ryzyko
0.16%

Percentyl 5 - wyżej niż 5% wszystkich znanych CVE

Streszczenie

W jądrze Linux w module KVM dla architektury PowerPC (Book3S HV) funkcja kvmppc_svm_page_in() nie zwalniała strony bezpiecznego urządzenia, gdy uv_page_in() zakończyło się błędem po wcześniejszym sukcesie kvmppc_uvmem_get_page(). Każde takie zdarzenie trwale zużywało wpis w puli bezpiecznej pamięci i pozostawiało GFN oznaczony jako bezpieczny, czyniąc go bezużytecznym na cały czas życia maszyny wirtualnej.

Ocena ryzyka

Powtarzające się wycieki mogą wyczerpać ograniczoną pulę bezpiecznej pamięci firmware, uniemożliwiając dalsze działanie maszyn wirtualnych na systemach POWER9/10 z Ultravisor/PEF.

Rekomendacja

Zaktualizuj jądro Linux do wersji zawierającej poprawkę stosującą unlock_page() i put_page() w ścieżce błędu uv_page_in() w kvmppc_svm_page_in().

Inne podatności w Linux kernel

Zobacz wszystkie
Oryginalny opis (angielski, źródło NVD)

In the Linux kernel, the following vulnerability has been resolved: KVM: PPC: Book3S HV: fix secure device page leak on uv_page_in() failure In kvmppc_svm_page_in(), if uv_page_in() fails after kvmppc_uvmem_get_page() has succeeded, the secure device page is never released. kvmppc_uvmem_get_page() sets a bit in kvmppc_uvmem_bitmap, allocates a kvmppc_uvmem_page_pvt struct, marks the GFN as KVMPPC_GFN_UVMEM_PFN, and calls zone_device_page_init() which sets refcount=1 and locks the page. The subsequent goto out_finalize skips the *mig.dst assignment, so migrate_vma_finalize() is a no-op for the page, and none of those resources are ever reclaimed. Each occurrence permanently consumes one entry from the firmware-bounded secure memory pool (kvmppc_uvmem_bitmap), leaks pvt, and leaves the GFN marked as secure — making it unusable for the lifetime of the VM. The twin __kvmppc_svm_page_out() already handles the analogous uv_page_out() failure correctly with unlock_page(dpage); __free_page(dpage). Apply the same pattern here: unlock_page() followed by put_page(), which chains through free_zone_device_folio() into kvmppc_uvmem_folio_free() to clear the bitmap bit, free pvt, and reset the GFN state. Reachable whenever uv_page_in() returns an error (e.g. UV pool exhaustion) on any POWER9/10 + Ultravisor/PEF system.

Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS