{"id":"CVE-2026-64604","state":"PUBLISHED","title":"KVM: VMX: Grab vmcs12 on CR8 interception update iff vCPU is in guest mode","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nKVM: VMX: Grab vmcs12 on CR8 interception update iff vCPU is in guest mode\n\nWhen updating CR8 intercepts, get vmcs12 if and only if the vCPU is in\nguest mode so that a future change can have update CR8 intercepts during\nvCPU creation, without running afoul of get_vmcs12()'s lockdep assertion.\n\n  ------------[ cut here ]------------\n  debug_locks && !(lock_is_held(&(&vcpu->mutex)->dep_map) || !refcount_read(&vcpu->kvm->users_count))\n  WARNING: arch/x86/kvm/vmx/nested.h:61 at get_vmcs12 arch/x86/kvm/vmx/nested.h:60 [inline], CPU#0: syz.2.19/5879\n  WARNING: arch/x86/kvm/vmx/nested.h:61 at vmx_update_cr8_intercept+0x3de/0x4e0 arch/x86/kvm/vmx/vmx.c:6879, CPU#0: syz.2.19/5879\n  Modules linked in:\n  CPU: 0 UID: 0 PID: 5879 Comm: syz.2.19 Not tainted syzkaller #0 PREEMPT(full)\n  Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.2-debian-1.16.2-1 04/01/2014\n  RIP: 0010:get_vmcs12 arch/x86/kvm/vmx/nested.h:60 [inline]\n  RIP: 0010:vmx_update_cr8_intercept+0x3de/0x4e0 arch/x86/kvm/vmx/vmx.c:6879\n  Call Trace:\n   <TASK>\n   apic_update_ppr arch/x86/kvm/lapic.c:984 [inline]\n   kvm_lapic_reset+0x1c24/0x2980 arch/x86/kvm/lapic.c:3023\n   kvm_vcpu_reset+0x44c/0x1bf0 arch/x86/kvm/x86.c:12986\n   kvm_arch_vcpu_create+0x746/0x8b0 arch/x86/kvm/x86.c:12847\n   kvm_vm_ioctl_create_vcpu+0x428/0x930 virt/kvm/kvm_main.c:4201\n   kvm_vm_ioctl+0x893/0xd50 virt/kvm/kvm_main.c:5159\n   vfs_ioctl fs/ioctl.c:51 [inline]\n   __do_sys_ioctl fs/ioctl.c:597 [inline]\n   __se_sys_ioctl+0xfc/0x170 fs/ioctl.c:583\n   do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]\n   do_syscall_64+0x174/0x580 arch/x86/entry/syscall_64.c:94\n   entry_SYSCALL_64_after_hwframe+0x77/0x7f\n   </TASK>\n\nNo functional change intended.","publishedAt":"2026-08-06T07:13:55.718Z","updatedAt":"2026-08-17T04:58:27.506Z","severity":null,"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"a7c0b07d570848e50fce4d31ac01313484d6b844","status":"affected","lessThan":"c7cd3605244c924249dea32632e1bc3e89bda543","versionType":"git"},{"version":"a7c0b07d570848e50fce4d31ac01313484d6b844","status":"affected","lessThan":"9a21f1defd96c6301c5fb462a78eb51b191bd2dd","versionType":"git"},{"version":"a7c0b07d570848e50fce4d31ac01313484d6b844","status":"affected","lessThan":"570af5db081b87374594a00711ac5760d2ea6844","versionType":"git"},{"version":"a7c0b07d570848e50fce4d31ac01313484d6b844","status":"affected","lessThan":"ffaaff82336db84e9b58e7a3e81c2fd64e05ed7a","versionType":"git"},{"version":"a7c0b07d570848e50fce4d31ac01313484d6b844","status":"affected","lessThan":"258ec63c0f281bf7b50f9de67c8e93b5b7be5ed4","versionType":"git"},{"version":"a7c0b07d570848e50fce4d31ac01313484d6b844","status":"affected","lessThan":"3dcfb04dd43b16fa1240fc6487fff578ad57264c","versionType":"git"},{"version":"a7c0b07d570848e50fce4d31ac01313484d6b844","status":"affected","lessThan":"db8407b9fd06d857a4a5e8bcff1d086d13007711","versionType":"git"},{"version":"a7c0b07d570848e50fce4d31ac01313484d6b844","status":"affected","lessThan":"7ef78d71ca713d8c00f7c34ddcf276c808143f77","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["arch/x86/kvm/vmx/vmx.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"3.18","status":"affected"},{"version":"0","status":"unaffected","lessThan":"3.18","versionType":"semver"},{"version":"5.10.261","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.212","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.178","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.145","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.96","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.39","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.1.4","status":"unaffected","lessThanOrEqual":"7.1.*","versionType":"semver"},{"version":"7.2","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["arch/x86/kvm/vmx/vmx.c"]}],"references":["https://git.kernel.org/stable/c/c7cd3605244c924249dea32632e1bc3e89bda543","https://git.kernel.org/stable/c/9a21f1defd96c6301c5fb462a78eb51b191bd2dd","https://git.kernel.org/stable/c/570af5db081b87374594a00711ac5760d2ea6844","https://git.kernel.org/stable/c/ffaaff82336db84e9b58e7a3e81c2fd64e05ed7a","https://git.kernel.org/stable/c/258ec63c0f281bf7b50f9de67c8e93b5b7be5ed4","https://git.kernel.org/stable/c/3dcfb04dd43b16fa1240fc6487fff578ad57264c","https://git.kernel.org/stable/c/db8407b9fd06d857a4a5e8bcff1d086d13007711","https://git.kernel.org/stable/c/7ef78d71ca713d8c00f7c34ddcf276c808143f77"],"weaknesses":[],"ingestedAt":"2026-10-29T20:12:41.951Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/64xxx/CVE-2026-64604.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-64604","state":"PUBLISHED","datePublished":"2026-08-06T07:13:55.718Z","dateUpdated":"2026-08-17T04:58:27.506Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2026-07-19T15:36:31.799Z"},"containers":{"cna":{"title":"KVM: VMX: Grab vmcs12 on CR8 interception update iff vCPU is in guest mode","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nKVM: VMX: Grab vmcs12 on CR8 interception update iff vCPU is in guest mode\n\nWhen updating CR8 intercepts, get vmcs12 if and only if the vCPU is in\nguest mode so that a future change can have update CR8 intercepts during\nvCPU creation, without running afoul of get_vmcs12()'s lockdep assertion.\n\n  ------------[ cut here ]------------\n  debug_locks && !(lock_is_held(&(&vcpu->mutex)->dep_map) || !refcount_read(&vcpu->kvm->users_count))\n  WARNING: arch/x86/kvm/vmx/nested.h:61 at get_vmcs12 arch/x86/kvm/vmx/nested.h:60 [inline], CPU#0: syz.2.19/5879\n  WARNING: arch/x86/kvm/vmx/nested.h:61 at vmx_update_cr8_intercept+0x3de/0x4e0 arch/x86/kvm/vmx/vmx.c:6879, CPU#0: syz.2.19/5879\n  Modules linked in:\n  CPU: 0 UID: 0 PID: 5879 Comm: syz.2.19 Not tainted syzkaller #0 PREEMPT(full)\n  Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.2-debian-1.16.2-1 04/01/2014\n  RIP: 0010:get_vmcs12 arch/x86/kvm/vmx/nested.h:60 [inline]\n  RIP: 0010:vmx_update_cr8_intercept+0x3de/0x4e0 arch/x86/kvm/vmx/vmx.c:6879\n  Call Trace:\n   <TASK>\n   apic_update_ppr arch/x86/kvm/lapic.c:984 [inline]\n   kvm_lapic_reset+0x1c24/0x2980 arch/x86/kvm/lapic.c:3023\n   kvm_vcpu_reset+0x44c/0x1bf0 arch/x86/kvm/x86.c:12986\n   kvm_arch_vcpu_create+0x746/0x8b0 arch/x86/kvm/x86.c:12847\n   kvm_vm_ioctl_create_vcpu+0x428/0x930 virt/kvm/kvm_main.c:4201\n   kvm_vm_ioctl+0x893/0xd50 virt/kvm/kvm_main.c:5159\n   vfs_ioctl fs/ioctl.c:51 [inline]\n   __do_sys_ioctl fs/ioctl.c:597 [inline]\n   __se_sys_ioctl+0xfc/0x170 fs/ioctl.c:583\n   do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]\n   do_syscall_64+0x174/0x580 arch/x86/entry/syscall_64.c:94\n   entry_SYSCALL_64_after_hwframe+0x77/0x7f\n   </TASK>\n\nNo functional change intended."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"a7c0b07d570848e50fce4d31ac01313484d6b844","status":"affected","lessThan":"c7cd3605244c924249dea32632e1bc3e89bda543","versionType":"git"},{"version":"a7c0b07d570848e50fce4d31ac01313484d6b844","status":"affected","lessThan":"9a21f1defd96c6301c5fb462a78eb51b191bd2dd","versionType":"git"},{"version":"a7c0b07d570848e50fce4d31ac01313484d6b844","status":"affected","lessThan":"570af5db081b87374594a00711ac5760d2ea6844","versionType":"git"},{"version":"a7c0b07d570848e50fce4d31ac01313484d6b844","status":"affected","lessThan":"ffaaff82336db84e9b58e7a3e81c2fd64e05ed7a","versionType":"git"},{"version":"a7c0b07d570848e50fce4d31ac01313484d6b844","status":"affected","lessThan":"258ec63c0f281bf7b50f9de67c8e93b5b7be5ed4","versionType":"git"},{"version":"a7c0b07d570848e50fce4d31ac01313484d6b844","status":"affected","lessThan":"3dcfb04dd43b16fa1240fc6487fff578ad57264c","versionType":"git"},{"version":"a7c0b07d570848e50fce4d31ac01313484d6b844","status":"affected","lessThan":"db8407b9fd06d857a4a5e8bcff1d086d13007711","versionType":"git"},{"version":"a7c0b07d570848e50fce4d31ac01313484d6b844","status":"affected","lessThan":"7ef78d71ca713d8c00f7c34ddcf276c808143f77","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["arch/x86/kvm/vmx/vmx.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"3.18","status":"affected"},{"version":"0","status":"unaffected","lessThan":"3.18","versionType":"semver"},{"version":"5.10.261","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.212","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.178","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.145","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.96","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.39","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.1.4","status":"unaffected","lessThanOrEqual":"7.1.*","versionType":"semver"},{"version":"7.2","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["arch/x86/kvm/vmx/vmx.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/c7cd3605244c924249dea32632e1bc3e89bda543"},{"url":"https://git.kernel.org/stable/c/9a21f1defd96c6301c5fb462a78eb51b191bd2dd"},{"url":"https://git.kernel.org/stable/c/570af5db081b87374594a00711ac5760d2ea6844"},{"url":"https://git.kernel.org/stable/c/ffaaff82336db84e9b58e7a3e81c2fd64e05ed7a"},{"url":"https://git.kernel.org/stable/c/258ec63c0f281bf7b50f9de67c8e93b5b7be5ed4"},{"url":"https://git.kernel.org/stable/c/3dcfb04dd43b16fa1240fc6487fff578ad57264c"},{"url":"https://git.kernel.org/stable/c/db8407b9fd06d857a4a5e8bcff1d086d13007711"},{"url":"https://git.kernel.org/stable/c/7ef78d71ca713d8c00f7c34ddcf276c808143f77"}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-08-17T04:58:27.506Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.18","versionEndExcluding":"5.10.261"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.18","versionEndExcluding":"5.15.212"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.18","versionEndExcluding":"6.1.178"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.18","versionEndExcluding":"6.6.145"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.18","versionEndExcluding":"6.12.96"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.18","versionEndExcluding":"6.18.39"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.18","versionEndExcluding":"7.1.4"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.18","versionEndExcluding":"7.2"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}}}}}