CVE-2026-98433: KVM: PPC: Book3S HV: fix secure device page leak on uv_page_in() failure
In the Linux kernel, the following vulnerability has been resolved:
KVM: PPC: Book3S HV: fix secure device page leak on uvpagein() failure
In kvmppcsvmpagein(), if uvpagein() fails after kvmppcuvmemgetpage() has succeeded, the secure device page is never released. kvmppcuvmemgetpage() sets a bit in kvmppcuvmembitmap, allocates a kvmppcuvmempagepvt struct, marks the GFN as KVMPPCGFNUVMEMPFN, and calls zonedevicepageinit() which sets refcount=1 and locks the page. The subsequent goto outfinalize skips the mig.dst assignment, so migratevmafinalize() 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 (kvmppcuvmembitmap), leaks pvt, and leaves the GFN marked as secure — making it unusable for the lifetime of the VM.
The twin kvmppcsvmpageout() already handles the analogous uvpageout() failure correctly with unlockpage(dpage); freepage(dpage). Apply the same pattern here: unlockpage() followed by putpage(), which chains through freezonedevicefolio() into kvmppcuvmemfoliofree() to clear the bitmap bit, free pvt, and reset the GFN state.
Reachable whenever uvpagein() returns an error (e.g. UV pool exhaustion) on any POWER9/10 + Ultravisor/PEF system.