CVE-2025-68810
NoneCVSS
—
EPSS
0.1%
Published
Jan 13, 2026
CISA due date
—
Cloudanix analysis
A bug in the Linux kernel's handling of virtual-machine memory could let a local attacker crash the host or potentially take control of the system.
- Exploitation
- Local Privilege
- Attacker needs
- Local User
- Complexity
- Moderate
- Impact
- Privilege Gain
- Component
- OS kernel
- Class
- Use After Free
- Remediation
- Patch
- Effort
- Medium
- Patch risk
- Low
What it actually does
Failure to reject memslot updates that clear KVM_MEM_GUEST_MEMFD on an existing binding leaves KVM still attached to the guest_memfd file, resulting in a use-after-free when kvm_gmem_release is later invoked on the freed backing structure.
Why it matters to the business
Linux hosts running KVM workloads face kernel memory corruption that can produce guest or host crashes, denial of service, or potential local privilege escalation; the issue affects any virtualized environment using guest_memfd-backed memory regions until patched kernels are deployed.
How an attack unfolds
An attacker with the ability to issue KVM_SET_USER_MEMORY_REGION ioctls first allocates a memslot with the KVM_MEM_GUEST_MEMFD flag, then issues a subsequent FLAGS_ONLY update that clears the flag; KVM performs the update without unbinding from guest_memfd, so a later close or exit triggers kvm_gmem_release on already-freed memory.
How to fix it
Upgrade the Linux kernel to a version that contains commit 89dbbe6ff323fc34659621a577fe0af913f47386 or later; rebuild and reboot all affected hosts; until the update can be applied, restrict unprivileged access to /dev/kvm via SELinux, AppArmor, or cgroup device filters.
How to confirm the fix worked
Confirm the running kernel contains commit 89dbbe6ff323fc34659621a577fe0af913f47386 by checking /proc/version or the package changelog; attempt to reproduce the original reproducer and verify that KVM now returns EINVAL when clearing KVM_MEM_GUEST_MEMFD on an existing memslot.
Typical attack path
- Obtain capability to open /dev/kvm and create a VM with guest_memfd support
- Issue KVM_SET_USER_MEMORY_REGION with KVM_MEM_GUEST_MEMFD set
- Issue a second KVM_SET_USER_MEMORY_REGION ioctl that clears only the KVM_MEM_GUEST_MEMFD flag
- Trigger process exit or file close to invoke kvm_gmem_release on the stale reference
- Observe KASAN use-after-free or exploit the freed slab object for code execution
How to detect it
Review kernel logs for KASAN reports referencing kvm_gmem_release or slab-use-after-free during KVM memslot operations; inspect audit logs for repeated KVM_SET_USER_MEMORY_REGION ioctls from untrusted processes; no persistent artifacts remain after reboot.
What your security team should do
- Prioritize patching of all KVM hosts within the next maintenance window
- Audit systems for custom kernels or out-of-tree KVM modules that may still contain the vulnerable code
- Apply least-privilege controls on /dev/kvm access for non-administrative users
- Monitor vendor and distribution advisories for backported fixes in supported LTS kernels
The record
In the Linux kernel, the following vulnerability has been resolved: KVM: Disallow toggling KVM_MEM_GUEST_MEMFD on an existing memslot Reject attempts to disable KVM_MEM_GUEST_MEMFD on a memslot that was initially created with a guest_memfd binding, as KVM doesn't support toggling KVM_MEM_GUEST_MEMFD on existing memslots. KVM prevents enabling KVM_MEM_GUEST_MEMFD, but doesn't prevent clearing the flag. Failure to reject the new memslot results in a use-after-free due to KVM not unbinding from the guest_memfd instance. Unbinding on a FLAGS_ONLY change is easy enough, and can/will be done as a hardening measure (in anticipation of KVM supporting dirty logging on guest_memfd at some point), but fixing the use-after-free would only address the immediate symptom. ================================================================== BUG: KASAN: slab-use-after-free in kvm_gmem_release+0x362/0x400 [kvm] Write of size 8 at addr ffff8881111ae908 by task repro/745 CPU: 7 UID: 1000 PID: 745 Comm: repro Not tainted 6.18.0-rc6-115d5de2eef3-next-kasan #3 NONE Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 0.0.0 02/06/2015 Call Trace: <TASK> dump_stack_lvl+0x51/0x60 print_report+0xcb/0x5c0 kasan_report+0xb4/0xe0 kvm_gmem_release+0x362/0x400 [kvm] __fput+0x2fa/0x9d0 task_work_run+0x12c/0x200 do_exit+0x6ae/0x2100 do_group_exit+0xa8/0x230 __x64_sys_exit_group+0x3a/0x50 x64_sys_call+0x737/0x740 do_syscall_64+0x5b/0x900 entry_SYSCALL_64_after_hwframe+0x4b/0x53 RIP: 0033:0x7f581f2eac31 </TASK> Allocated by task 745 on cpu 6 at 9.746971s: kasan_save_stack+0x20/0x40 kasan_save_track+0x13/0x50 __kasan_kmalloc+0x77/0x90 kvm_set_memory_region.part.0+0x652/0x1110 [kvm] kvm_vm_ioctl+0x14b0/0x3290 [kvm] __x64_sys_ioctl+0x129/0x1a0 do_syscall_64+0x5b/0x900 entry_SYSCALL_64_after_hwframe+0x4b/0x53 Freed by task 745 on cpu 6 at 9.747467s: kasan_save_stack+0x20/0x40 kasan_save_track+0x13/0x50 __kasan_save_free_info+0x37/0x50 __kasan_slab_free+0x3b/0x60 kfree+0xf5/0x440 kvm_set_memslot+0x3c2/0x1160 [kvm] kvm_set_memory_region.part.0+0x86a/0x1110 [kvm] kvm_vm_ioctl+0x14b0/0x3290 [kvm] __x64_sys_ioctl+0x129/0x1a0 do_syscall_64+0x5b/0x900 entry_SYSCALL_64_after_hwframe+0x4b/0x53
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Linux | Kernel | 6.8.0 | 6.12.64 |
| openSUSE:Leap 16.0 | dtb-aarch64 | 0 | 6.12.0-160000.27.1 |
| openSUSE:Leap 16.0 | kernel-64kb | 0 | 6.12.0-160000.27.1 |
| openSUSE:Leap 16.0 | kernel-azure | 0 | 6.12.0-160000.27.1 |
| openSUSE:Leap 16.0 | kernel-default | 0 | 6.12.0-160000.27.1 |
| openSUSE:Leap 16.0 | kernel-default-base | 0 | 6.12.0-160000.27.1.160000.2.8 |
| openSUSE:Leap 16.0 | kernel-docs | 0 | 6.12.0-160000.27.1 |
| openSUSE:Leap 16.0 | kernel-kvmsmall | 0 | 6.12.0-160000.27.1 |
| openSUSE:Leap 16.0 | kernel-obs-build | 0 | 6.12.0-160000.27.1 |
| openSUSE:Leap 16.0 | kernel-obs-qa | 0 | 6.12.0-160000.27.1 |
| openSUSE:Leap 16.0 | kernel-rt | 0 | 6.12.0-160000.27.1 |
| openSUSE:Leap 16.0 | kernel-source | 0 | 6.12.0-160000.27.1 |
| openSUSE:Leap 16.0 | kernel-syms | 0 | 6.12.0-160000.27.1 |
| openSUSE:Leap 16.0 | kernel-zfcpdump | 0 | 6.12.0-160000.27.1 |
Related vulnerabilities
- CVE-2026-23226 In the Linux kernel, the following vulnerability has been resolved: ksmbd: add chann_lock… Also affects Kernel
- CVE-2026-23225 In the Linux kernel, the following vulnerability has been resolved: sched/mmcid: Don't… Also affects Kernel
- CVE-2026-23230 In the Linux kernel, the following vulnerability has been resolved: smb: client: split… Also affects Kernel
- CVE-2026-23224 In the Linux kernel, the following vulnerability has been resolved: erofs: fix UAF issue… Also affects Kernel
- CVE-2026-23227 In the Linux kernel, the following vulnerability has been resolved: drm/exynos: vidi: use… Also affects Kernel
- CVE-2026-23223 In the Linux kernel, the following vulnerability has been resolved: xfs: fix UAF in… Also affects Kernel
- CVE-2026-23228 In the Linux kernel, the following vulnerability has been resolved: smb: server: fix leak… Also affects Kernel
- CVE-2026-23229 In the Linux kernel, the following vulnerability has been resolved: crypto: virtio - Add… Also affects Kernel