CVE-2026-68428

Source
https://cve.org/CVERecord?id=CVE-2026-68428
Import Source
https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2026-68428.json
JSON Data
https://api.test.osv.dev/v1/vulns/CVE-2026-68428
Downstream
Published
2026-08-10T12:04:48.905Z
Modified
2026-08-12T03:34:23.191869899Z
Summary
KVM: x86/mmu: Fix use-after-free on vendor module reload
Details

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():

  1. Load kvm.ko and kvm-intel.ko, creating both caches.
  2. Unload only kvm_intel, leaving kvm.ko loaded.
  3. Reload kvm_intel and force initialization through the -ENOMEM path.

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.

Database specific
{
    "cna_assigner": "Linux",
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/68xxx/CVE-2026-68428.json"
}
References

Affected packages

Git / git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git

Affected ranges

Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
cb498ea2ce1d3f3c0bc0a2522241dca10263e437
Fixed
6f4be73880302d5642c83a0813fdfe1f5fd4b6e3
Fixed
32b9f89ed9e6d7a45075d64089c254a7f6e13695
Fixed
ec9daa8fd1b6f45545c9839dca55bd867fad9e13
Fixed
43cfb20d62ffe49626d62beecfc32eb6f262191c
Fixed
52f2f7c30126037975389aa04d24c506a5177c35

Database specific

source
"https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2026-68428.json"

Linux / Kernel

Package

Name
Kernel

Affected ranges

Type
ECOSYSTEM
Events
Introduced
2.6.25
Fixed
6.6.148
Type
ECOSYSTEM
Events
Introduced
6.7.0
Fixed
6.12.101
Type
ECOSYSTEM
Events
Introduced
6.13.0
Fixed
6.18.42
Type
ECOSYSTEM
Events
Introduced
6.19.0
Fixed
7.1.6

Database specific

source
"https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2026-68428.json"