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

KVM: SVM: Bump asid_generation on CPU online to avoid ASID collision after hotplug

If a vCPU stays scheduled out (or blocked) while the last pCPU it ran
on goes through a hotplug cycle (online->offline->online), and the vCPU
then resumes execution on the same pCPU, then it is possible for it to
run with an ASID that has now been assigned to a different vCPU,
resulting in stale TLB translations being used.

svm_enable_virtualization_cpu() resets asid_generation to 1 and sets
next_asid to max_asid + 1 on every CPU online event, including hotplug
cycles. Because next_asid starts beyond the pool boundary, the first
call to new_asid() after an online event always wraps the pool,
incrementing asid_generation to 2 and assigning ASIDs starting from
min_asid.

Consider two vCPUs from different VMs, vCPU-A pinned to CPU-X holding
asid_generation=2 and ASID=N from before the hotplug event:

1. CPU-X goes offline and back online: asid_generation resets to 1,
next_asid = max_asid + 1.

2. One or more vCPUs migrate to CPU-X and call new_asid(), wrapping
the pool and consuming ASIDs starting from min_asid. Eventually
vCPU-B from a different VM is assigned asid_generation=2, ASID=N
— the same ASID that vCPU-A held before the hotplug.

3. vCPU-A enters pre_svm_run() on CPU-X: current_vmcb->cpu is
unchanged so the migration branch is skipped. Its saved
asid_generation=2 matches sd->asid_generation=2, so the generation
check silently passes and vCPU-A continues running with ASID=N —
the same ASID just freshly assigned to vCPU-B.

Both vCPUs from different VMs now run on CPU-X with the same ASID,
causing them to share NPT TLB entries and producing stale translations.

The collision manifests as a KVM internal error (Suberror: 1, emulation
failure). The NPT page fault reports a faulting GPA far outside the
VM's physical memory range — a sign of stale TLB translations being
used. KVM falls back to instruction emulation, which fails on
FPU/XSave instructions (XRSTOR, STMXCSR) that the emulator does not
implement.

Fix this by incrementing asid_generation instead of resetting it to 1
in svm_enable_virtualization_cpu(). On module load, asid_generation
starts at 0 (memset) and the increment produces 1, identical to the
old behaviour. On subsequent hotplug cycles the generation advances
beyond any value a vCPU previously observed on this CPU, so the
generation check in pre_svm_run() reliably forces new_asid() on every
vCPU after every hotplug cycle.
Published: 2026-08-10
Score: 5.6 Medium
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The flaw occurs in the Linux kernel’s KVM SVM virtualization path when a physical CPU is cycled offline and back online. The code that assigns Address Space Identifiers (ASIDs) resets the ASID generation counter to 1 instead of incrementing it, allowing a virtual CPU that remains unscheduled during the hotplug cycle to resume on the same CPU with an ASID that has already been reassigned to a different virtual CPU. This collision causes stale Translation Lookaside Buffer (TLB) entries to be used, resulting in internal errors that manifest as NPT page faults with faulting guest physical addresses far outside the VM’s memory limits. The emulator then fails to emulate the affected instructions, ending in a KVM internal error that can boot the VM or kill the virtual machine entirely. The vulnerability does not grant direct code execution, but it can lead to unexpected termination or corruption of VM state, effectively a denial of service for the affected virtual machines.

Affected Systems

All Linux kernel builds that implement KVM SVM virtualization are potentially affected, as the bug is present in the generic KVM module without any version restriction listed. Because the issue involves the handling of ASID generation during CPU hotplug events, any environment that uses Linux with KVM and experiences hotplugging of CPUs may be exposed. No specific product or release numbers are documented in the advisories.

Risk and Exploitability

The CVSS score is 5.6, indicating a moderate severity, and the EPSS score is <1%, suggesting a low likelihood of exploitation. The vulnerability is not listed in the CISA KEV catalog. The exploitability hinges on an attacker’s ability to trigger a CPU hotplug cycle while one or more virtual CPUs remain unscheduled or blocked on the CPU that is reactivated. The effect is a crash or forced failure of the affected VM or the hypervisor’s emulation layer rather than arbitrary code execution on the host. In environments that rely on CPU hotplug for capacity management or fault tolerance, the failure could impact service availability. The lack of a KEV listing suggests no current widespread exploitation, but the high potential for disruptive impact warrants prompt attention.

Generated by OpenCVE AI on August 13, 2026 at 08:23 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Update the Linux kernel to a version that includes the ASID generation fix for KVM SVM virtualization
  • Configure KVM hosts to avoid performing physical CPU hotplug operations while virtual machines are running or to ensure virtual CPUs are actively scheduled during the cycle
  • If hotplug is required, make sure virtual CPUs are rebound or migrated to a different CPU before the hotplug event to avoid ASID reuse conflicts

Generated by OpenCVE AI on August 13, 2026 at 08:23 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Debian DLA Debian DLA DLA-4745-1 linux-6.12 security update
History

Wed, 19 Aug 2026 16:45:00 +0000


Wed, 12 Aug 2026 00:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-821
References
Metrics threat_severity

None

cvssV3_1

{'score': 5.6, 'vector': 'CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:C/C:N/I:N/A:H'}

threat_severity

Moderate


Mon, 10 Aug 2026 13:45:00 +0000

Type Values Removed Values Added
Weaknesses CWE-200
CWE-676

Mon, 10 Aug 2026 12:30:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: KVM: SVM: Bump asid_generation on CPU online to avoid ASID collision after hotplug If a vCPU stays scheduled out (or blocked) while the last pCPU it ran on goes through a hotplug cycle (online->offline->online), and the vCPU then resumes execution on the same pCPU, then it is possible for it to run with an ASID that has now been assigned to a different vCPU, resulting in stale TLB translations being used. svm_enable_virtualization_cpu() resets asid_generation to 1 and sets next_asid to max_asid + 1 on every CPU online event, including hotplug cycles. Because next_asid starts beyond the pool boundary, the first call to new_asid() after an online event always wraps the pool, incrementing asid_generation to 2 and assigning ASIDs starting from min_asid. Consider two vCPUs from different VMs, vCPU-A pinned to CPU-X holding asid_generation=2 and ASID=N from before the hotplug event: 1. CPU-X goes offline and back online: asid_generation resets to 1, next_asid = max_asid + 1. 2. One or more vCPUs migrate to CPU-X and call new_asid(), wrapping the pool and consuming ASIDs starting from min_asid. Eventually vCPU-B from a different VM is assigned asid_generation=2, ASID=N — the same ASID that vCPU-A held before the hotplug. 3. vCPU-A enters pre_svm_run() on CPU-X: current_vmcb->cpu is unchanged so the migration branch is skipped. Its saved asid_generation=2 matches sd->asid_generation=2, so the generation check silently passes and vCPU-A continues running with ASID=N — the same ASID just freshly assigned to vCPU-B. Both vCPUs from different VMs now run on CPU-X with the same ASID, causing them to share NPT TLB entries and producing stale translations. The collision manifests as a KVM internal error (Suberror: 1, emulation failure). The NPT page fault reports a faulting GPA far outside the VM's physical memory range — a sign of stale TLB translations being used. KVM falls back to instruction emulation, which fails on FPU/XSave instructions (XRSTOR, STMXCSR) that the emulator does not implement. Fix this by incrementing asid_generation instead of resetting it to 1 in svm_enable_virtualization_cpu(). On module load, asid_generation starts at 0 (memset) and the increment produces 1, identical to the old behaviour. On subsequent hotplug cycles the generation advances beyond any value a vCPU previously observed on this CPU, so the generation check in pre_svm_run() reliably forces new_asid() on every vCPU after every hotplug cycle.
Title KVM: SVM: Bump asid_generation on CPU online to avoid ASID collision after hotplug
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-08-19T16:29:15.060Z

Reserved: 2026-07-30T09:28:09.367Z

Link: CVE-2026-68093

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-08-10T13:19:53.303

Modified: 2026-08-19T17:20:28.353

Link: CVE-2026-68093

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-08-10T11:58:05Z

Links: CVE-2026-68093 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-08-13T08:30:11Z

Weaknesses
  • CWE-200

    Exposure of Sensitive Information to an Unauthorized Actor

  • CWE-676

    Use of Potentially Dangerous Function

  • CWE-821

    Incorrect Synchronization