CVE-2026-74516 (GCVE-0-2026-74516)
Vulnerability from cvelistv5
Published
2026-08-15 12:27
Modified
2026-08-19 16:38
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
KVM: SVM: Update x2APIC MSR intercepts if AVIC is inhibited while L2 is active
Always update x2APIC MSR intercepts for L1 when AVIC is deactivated, even
if L2 is active and KVM is using a separate MSR bitmap to run L2. If AVIC
is fully enabled prior to running L2, and is then inhibited while L2 is
active (for a VM-scoped inhibit), then KVM will run L1 with AVIC disabled,
but with x2APIC MSR intercepts disabled, i.e. will allow L1 to read most of
the host's APIC state, send arbitrary interrupts, change task priority, and
ultimately trivially DoS the host.
E.g. sending a self-IPI in L1 on HYPERV_REENLIGHTENMENT_VECTOR, 0xee, with
CONFIG_HYPERV=n in the host kernel as a "safe" PoC, yields:
Spurious interrupt (vector 0xee) on CPU#425. Acked
And hacking KVM to abuse kvm_set_posted_intr_wakeup_handler() to register a
handler and WARN on POSTED_INTR_WAKEUP_VECTOR yields:
------------[ cut here ]------------
WARNING: arch/x86/kvm/svm/svm.c:5594 at pi_wakeup_handler+0x9/0x10 [kvm_amd], CPU#156: nested_x2apic_t/316940
CPU: 156 UID: 0 PID: 316940 Comm: nested_x2apic_t Tainted: G S U
Tainted: [S]=CPU_OUT_OF_SPEC, [U]=USER
Hardware name: Google Astoria-Turin/astoria, BIOS 0.20260209.0-0 02/09/2026
RIP: 0010:pi_wakeup_handler+0x9/0x10 [kvm_amd]
Call Trace:
<IRQ>
sysvec_kvm_posted_intr_wakeup_ipi+0x64/0x80
</IRQ>
<TASK>
asm_sysvec_kvm_posted_intr_wakeup_ipi+0x1a/0x20
RIP: 0010:vcpu_run+0x1430/0x1e40 [kvm]
kvm_arch_vcpu_ioctl_run+0x2c1/0x600 [kvm]
kvm_vcpu_ioctl+0x580/0x6b0 [kvm]
__se_sys_ioctl+0x6d/0xb0
do_syscall_64+0x10a/0x480
entry_SYSCALL_64_after_hwframe+0x4b/0x53
RIP: 0033:0x46ff4b
</TASK>
---[ end trace 0000000000000000 ]---
References
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 091abbf578f926e763adc0f577baeb7f405b4bdc Version: 091abbf578f926e763adc0f577baeb7f405b4bdc Version: 091abbf578f926e763adc0f577baeb7f405b4bdc Version: 091abbf578f926e763adc0f577baeb7f405b4bdc Version: 091abbf578f926e763adc0f577baeb7f405b4bdc Version: 091abbf578f926e763adc0f577baeb7f405b4bdc |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"arch/x86/kvm/svm/avic.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "4ca05385b3ddbd463be17c6d69ec76fca657081d",
"status": "affected",
"version": "091abbf578f926e763adc0f577baeb7f405b4bdc",
"versionType": "git"
},
{
"lessThan": "6664a5aea45318f4ec156a729949b474dd6e3159",
"status": "affected",
"version": "091abbf578f926e763adc0f577baeb7f405b4bdc",
"versionType": "git"
},
{
"lessThan": "f12373625b4dc9bcc89c41872648878c73bb9272",
"status": "affected",
"version": "091abbf578f926e763adc0f577baeb7f405b4bdc",
"versionType": "git"
},
{
"lessThan": "7668c58dcf465559dc7a0d2e95e9cb79cf47454b",
"status": "affected",
"version": "091abbf578f926e763adc0f577baeb7f405b4bdc",
"versionType": "git"
},
{
"lessThan": "89f9e8398e79c49886766fc24a84c37726231104",
"status": "affected",
"version": "091abbf578f926e763adc0f577baeb7f405b4bdc",
"versionType": "git"
},
{
"lessThan": "7d3aae206663c4e006b25a1c7a20a4029e67da76",
"status": "affected",
"version": "091abbf578f926e763adc0f577baeb7f405b4bdc",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"arch/x86/kvm/svm/avic.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.0"
},
{
"lessThan": "6.0",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.151",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.103",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.44",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.151",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.103",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.44",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.8",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.0",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nKVM: SVM: Update x2APIC MSR intercepts if AVIC is inhibited while L2 is active\n\nAlways update x2APIC MSR intercepts for L1 when AVIC is deactivated, even\nif L2 is active and KVM is using a separate MSR bitmap to run L2. If AVIC\nis fully enabled prior to running L2, and is then inhibited while L2 is\nactive (for a VM-scoped inhibit), then KVM will run L1 with AVIC disabled,\nbut with x2APIC MSR intercepts disabled, i.e. will allow L1 to read most of\nthe host\u0027s APIC state, send arbitrary interrupts, change task priority, and\nultimately trivially DoS the host.\n\nE.g. sending a self-IPI in L1 on HYPERV_REENLIGHTENMENT_VECTOR, 0xee, with\nCONFIG_HYPERV=n in the host kernel as a \"safe\" PoC, yields:\n\n Spurious interrupt (vector 0xee) on CPU#425. Acked\n\nAnd hacking KVM to abuse kvm_set_posted_intr_wakeup_handler() to register a\nhandler and WARN on POSTED_INTR_WAKEUP_VECTOR yields:\n\n ------------[ cut here ]------------\n WARNING: arch/x86/kvm/svm/svm.c:5594 at pi_wakeup_handler+0x9/0x10 [kvm_amd], CPU#156: nested_x2apic_t/316940\n CPU: 156 UID: 0 PID: 316940 Comm: nested_x2apic_t Tainted: G S U\n Tainted: [S]=CPU_OUT_OF_SPEC, [U]=USER\n Hardware name: Google Astoria-Turin/astoria, BIOS 0.20260209.0-0 02/09/2026\n RIP: 0010:pi_wakeup_handler+0x9/0x10 [kvm_amd]\n Call Trace:\n \u003cIRQ\u003e\n sysvec_kvm_posted_intr_wakeup_ipi+0x64/0x80\n \u003c/IRQ\u003e\n \u003cTASK\u003e\n asm_sysvec_kvm_posted_intr_wakeup_ipi+0x1a/0x20\n RIP: 0010:vcpu_run+0x1430/0x1e40 [kvm]\n kvm_arch_vcpu_ioctl_run+0x2c1/0x600 [kvm]\n kvm_vcpu_ioctl+0x580/0x6b0 [kvm]\n __se_sys_ioctl+0x6d/0xb0\n do_syscall_64+0x10a/0x480\n entry_SYSCALL_64_after_hwframe+0x4b/0x53\n RIP: 0033:0x46ff4b\n \u003c/TASK\u003e\n ---[ end trace 0000000000000000 ]---"
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 8.2,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - Exploitation requires triggering KVM nested SVM/AVIC paths via local /dev/kvm ioctls (KVM_CREATE_VM, KVM_CREATE_VCPU, KVM_RUN) from L1; there is no network, adjacent, or physical packet/device path to the vulnerable code.\nAC:L - An L1 attacker fully controls nested VM configuration (x2APIC, AVIC, L2 MSR bitmap, IRQ-window/ExtINT conditions) and can reliably reproduce AVIC inhibition while L2 is active without races or uncontrollable host state.\nPR:H - Reaching the bug requires running nested AMD KVM as L1 (nested virtualization enabled and control of a guest hypervisor), which is not available to an unprivileged host user or via user-namespace capabilities alone without delegated /dev/kvm access.\nUI:N - No victim interaction is required; exploitation is driven entirely by the attacker\u2019s nested hypervisor configuration and KVM_RUN operations once nested virtualization is available.\nS:C - The flaw lets an L1 nested guest hypervisor access the host\u2019s physical x2APIC MSRs, crossing the VM/host security boundary rather than staying within the guest\u2019s own security scope.\nC:H - With x2APIC MSR intercepts left disabled, L1 can read most of the host APIC state (IDs, IRR/ISR, timers, ICR), leaking sensitive host interrupt-controller information beyond the guest boundary.\nI:H - L1 can write host x2APIC MSRs to send arbitrary IPIs, change task priority, and invoke host interrupt vectors (e.g. posted-interrupt wakeup), enabling host integrity compromise beyond mere guest-local effects.\nA:H - Host availability is trivially impacted by injecting spurious or high-priority interrupts to host CPUs; the fix commit demonstrates host kernel warnings and spurious interrupt storms causing denial of service."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-19T16:38:16.902Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/4ca05385b3ddbd463be17c6d69ec76fca657081d"
},
{
"url": "https://git.kernel.org/stable/c/6664a5aea45318f4ec156a729949b474dd6e3159"
},
{
"url": "https://git.kernel.org/stable/c/f12373625b4dc9bcc89c41872648878c73bb9272"
},
{
"url": "https://git.kernel.org/stable/c/7668c58dcf465559dc7a0d2e95e9cb79cf47454b"
},
{
"url": "https://git.kernel.org/stable/c/89f9e8398e79c49886766fc24a84c37726231104"
},
{
"url": "https://git.kernel.org/stable/c/7d3aae206663c4e006b25a1c7a20a4029e67da76"
}
],
"title": "KVM: SVM: Update x2APIC MSR intercepts if AVIC is inhibited while L2 is active",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74516",
"datePublished": "2026-08-15T12:27:36.200Z",
"dateReserved": "2026-08-15T05:44:03.910Z",
"dateUpdated": "2026-08-19T16:38:16.902Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
Loading…
Loading…
Sightings
| Author | Source | Type | Date |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
- Confirmed: The vulnerability is confirmed from an analyst perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
- Patched: This vulnerability was successfully patched by the user reporting the sighting.
- Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
- Not confirmed: The user expresses doubt about the veracity of the vulnerability.
- Not patched: This vulnerability was not successfully patched by the user reporting the sighting.
Loading…
Loading…