In the Linux kernel, the following vulnerability has been resolved:
KVM: x86/mmu: Fix use-after-free on vendor module reload
mmudestroycaches() destroys ptelistdesccache and mmupageheadercache, but leaves both pointers unchanged. The pointers live in kvm.ko, and therefore survive when a vendor module is unloaded while kvm.ko remains loaded.
If creation of ptelistdesccache fails during a subsequent vendor module load, its assignment sets ptelistdesccache to NULL and the error path calls mmudestroycaches(). mmupageheadercache still points to the cache destroyed during the preceding vendor module unload. Passing that stale pointer to kmemcache_destroy() causes a slab use-after-free.
Reproduce the issue on a v7.1.3 kernel with CONFIGKASAN=y, CONFIGKASANGENERIC=y, CONFIGKVM=m, and CONFIGKVMINTEL=m. A one-shot test hook forces ptelistdesccache to NULL on the second invocation of kvmmmuvendormodule_init():
KASAN reports:
BUG: KASAN: slab-use-after-free in kvmmmuvendormoduleinit+0x5b/0x170 [kvm] ... kmemcachedestroy+0x21/0x1d0 kvmmmuvendormoduleinit+0x5b/0x170 [kvm] ... Allocated by task 16817: __kmemcachecreate_args+0x12c/0x3b0 __kmemcachecreate.constprop.0+0xb6/0xf0 [kvm] kvmmmuvendormoduleinit+0x13b/0x170 [kvm] ... Freed by task 16820: kmemcachedestroy+0x117/0x1d0 kvmmmuvendormoduleexit+0x21/0x30 [kvm]
Clear both pointers immediately after destroying their caches so that the stored state reflects the caches' lifetime and repeated cleanup is safe.
With the fix applied, the same injected vendor module reload fails with -ENOMEM as expected and produces no KASAN report.
{
"cna_assigner": "Linux",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/68xxx/CVE-2026-68428.json"
}