---
id: "CVE-2026-98472"
kind: "vulnerability"
aliases: ["CVE-2026-98472"]
title: "Linux kernel KVM: SEV VM destroy path leaks a CPU mask"
severity: "unknown"
cvss: null
epss: null
exploited: false
status: "open"
category: "runtime"
products: []
ecosystems: []
tags: ["kvm", "linux-kernel", "runtime", "self-hosted", "sev"]
not_affected_if: ["no-kvm", "no-sev-guests"]
published_at: "2026-10-18T16:16:57+00:00"
first_seen_at: "2026-10-23T21:57:15+00:00"
updated_at: "2026-10-25T05:26:00+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-98472", "first_seen_at": "2026-10-23T21:57:15+00:00"}]
---

# Linux kernel KVM: SEV VM destroy path leaks a CPU mask

In the Linux KVM SEV code, the "have run CPUs" cpumask is not freed during VM destruction when an SEV VM has been converted to a non-SEV VM by intra-host migration. The sources describe a resource leak and do not state a confirmed attacker capability.

_Summary, check and fix written by a model from the sources; labelled as such._

## How to check

- unknown

## Fix

- Update the Linux kernel to a release that includes the upstream fix for KVM: SEV have_run_cpus freeing (version unknown from the sources)

## Timeline

- 2026-10-23T21:57:15+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-98472

## From the sources

In the Linux kernel, the following vulnerability has been resolved:

KVM: SEV: Free have_run_cpus during VM destruction even if VM is no longer SEV

Unconditionally free SEV's "have run CPUs" cpumask in the VM destroy path,
i.e. even for what appear to be non-SEV VMs, as an SEV VM becomes a non-SEV
VM if its state is intra-host migrated.  Alternatively, the mask could be
freed in sev_migrate_from() when "converting" the source VM, but that gets
annoying because ideally KVM would nullify the mask to guard against UAF,
and nullifying the mask would need be conditioned on CPUMASK_OFFSTACK=y.

Freeing the mask during sev_migrate_from() is also not robust against other
KVM bugs, though that's kind of a moot point since any such bugs would show
up even if sev->active is never set.  I.e. KVM must get that side of things
correct.  But, that's not a great reason to add more code just to make
things marginally less robust.

---

_Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai_
