{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-74517","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","state":"PUBLISHED","assignerShortName":"Linux","dateReserved":"2026-08-15T05:44:03.910Z","datePublished":"2026-08-15T12:27:36.842Z","dateUpdated":"2026-08-23T12:47:33.203Z"},"containers":{"cna":{"providerMetadata":{"orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux","dateUpdated":"2026-08-23T12:47:33.203Z"},"descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nKVM: x86: Cancel delayed I/O APIC EOI handling before destroying vCPUs\n\nCancel (and flush) the I/O APIC's delayed EOI handling work during the\n\"pre VM destroy\" phase, before vCPUs are destroyed, as processing the EOI\nbroadcast will inject another IRQ if the line is asserted, i.e. will try\nto deliver an IRQ to the target vCPU(s).  Canceling the work after vCPUs\nare destroyed leads to UAF if the delayed work is processed after vCPUs are\ndestroyed.\n\n  BUG: KASAN: slab-use-after-free in __kvm_irq_delivery_to_apic_fast+0x9bf/0xa20 arch/x86/kvm/lapic.c:1250\n  Read of size 8 at addr ffff8880499abea0 by task kworker/1:2/1218\n\n  CPU: 1 UID: 0 PID: 1218 Comm: kworker/1:2 Not tainted 7.1.0-rc7 #5 PREEMPT(lazy)\n  Hardware name: QEMU Ubuntu 25.10 PC v2 (i440FX + PIIX, + 10.1 machine, 1996), BIOS 1.16.3-debian-1.16.3-2 04/01/2014\n  Workqueue: events kvm_ioapic_eoi_inject_work\n  Call Trace:\n   <TASK>\n   __dump_stack lib/dump_stack.c:94\n   dump_stack_lvl+0x100/0x190 lib/dump_stack.c:120\n   print_address_description mm/kasan/report.c:378\n   print_report+0x139/0x4ad mm/kasan/report.c:482\n   kasan_report+0xe4/0x1d0 mm/kasan/report.c:595\n   __kvm_irq_delivery_to_apic_fast+0x9bf/0xa20 arch/x86/kvm/lapic.c:1250\n   __kvm_irq_delivery_to_apic+0xd8/0xbf0 arch/x86/kvm/lapic.c:1345\n   kvm_irq_delivery_to_apic arch/x86/kvm/lapic.h:129\n   ioapic_service+0x308/0x590 arch/x86/kvm/ioapic.c:492\n   kvm_ioapic_eoi_inject_work+0x13c/0x190 arch/x86/kvm/ioapic.c:532\n   process_one_work+0xa59/0x19a0 kernel/workqueue.c:3314\n   process_scheduled_works kernel/workqueue.c:3397\n   worker_thread+0x5eb/0xe50 kernel/workqueue.c:3478\n   kthread+0x370/0x450 kernel/kthread.c:436\n   ret_from_fork+0x72b/0xd30 arch/x86/kernel/process.c:158\n   ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245\n   </TASK>\n\nNote, the VM is unreachable once kvm_destroy_vm() starts, and scheduling\nnew work via kvm_ioapic_send_eoi() can only be done via KVM_RUN, i.e.\nrequires a live vCPU.\n\nAlternatively, KVM could simply destroy the I/O APIC during the \"pre\" phase\nof VM destruction, but that gets more than a bit sketchy as KVM expects the\nI/O APIC to exist if ioapic_in_kernel() is true, and nested virtualization\nin particular has a bad habit of touching VM-scope state during vCPU\ndestruction.  E.g. attempting to free the PIC during the pre phase would\nlead to a NULL pointer dereference in kvm_cpu_has_extint(), and it's not\nhard to imagine the I/O APIC having a similar flaw."}],"metrics":[{"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H","baseScore":9.3,"baseSeverity":"CRITICAL"},"scenarios":[{"lang":"en","value":"AV:L - The vulnerable I/O APIC delayed-EOI workqueue path is reached from host-local KVM ioctls (KVM_CREATE_IRQCHIP/KVM_RUN) and vCPU MMIO/EOI handling during in-kernel irqchip operation; it is not exposed via any network-facing kernel service.\nAC:L - The slab UAF is attacker-driven: a guest can trigger 10,000 level-triggered IOAPIC EOIs to schedule the delayed work, then immediately halt/exit so the VMM tears down the VM while that work is still pending, controlling both sides of the race.\nPR:N - A malicious KVM guest on cloud or hosted x86 VMs can trigger the EOI storm and controlled teardown without host root/CAP_SYS_ADMIN; only normal VM tenancy is needed, as guest halt causes the VMM to destroy the VM and run kvm_destroy_vm().\nUI:N - No action from another user or administrator is required; the attacker controls guest interrupt/EOI behavior and the timing of guest shutdown that prompts automatic VM destruction on typical hypervisors (QEMU/KVM, cloud instances).\nS:C - Use-after-free of host-kernel vCPU/LAPIC objects during IRQ delivery from pending IOAPIC delayed work crosses the KVM virtual-machine boundary and can enable guest-to-host kernel compromise on multi-tenant cloud and enterprise virtualization hosts.\nC:H - KASAN confirmed a slab use-after-free reading freed vCPU/LAPIC pointers in __kvm_irq_delivery_to_apic_fast(); this UAF on host heap objects enables arbitrary kernel memory disclosure via controlled realloc/spray of the freed kvm_vcpu slab.\nI:H - The UAF dereferences freed vCPU state to inject APIC interrupts via kvm_apic_set_irq(), corrupting host kernel heap objects and providing write primitives exploitable for host code execution and VM escape.\nA:H - Processing the delayed EOI work after vCPU destruction causes host kernel use-after-free during IRQ injection, reliably triggering KASAN-detected slab corruption and potential host kernel oops/panic on production KVM hypervisors."}]}],"affected":[{"product":"Linux","vendor":"Linux","defaultStatus":"unaffected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["arch/x86/kvm/x86.c"],"versions":[{"version":"c60f5156e62d0be6c53373b623f16a9e37e2208e","lessThan":"69d040448067cebdd5598684db36ce7d8fb2f43e","status":"affected","versionType":"git"},{"version":"17bcd714426386fda741a4bccd96a2870179344b","lessThan":"5f0a99ea721203a4063618aafcca32abf573cb96","status":"affected","versionType":"git"},{"version":"17bcd714426386fda741a4bccd96a2870179344b","lessThan":"ed56a6b58222f9c1f4115a0bd2788dd6ed6022e2","status":"affected","versionType":"git"},{"version":"17bcd714426386fda741a4bccd96a2870179344b","lessThan":"9910e835580fef3bef53b70241dd00c4bffad693","status":"affected","versionType":"git"},{"version":"6.12.41","lessThan":"6.12.105","status":"affected","versionType":"semver"}]},{"product":"Linux","vendor":"Linux","defaultStatus":"affected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["arch/x86/kvm/x86.c"],"versions":[{"version":"6.14","status":"affected"},{"version":"0","lessThan":"6.14","status":"unaffected","versionType":"semver"},{"version":"6.12.105","lessThanOrEqual":"6.12.*","status":"unaffected","versionType":"semver"},{"version":"6.18.46","lessThanOrEqual":"6.18.*","status":"unaffected","versionType":"semver"},{"version":"7.1.8","lessThanOrEqual":"7.1.*","status":"unaffected","versionType":"semver"},{"version":"7.2","lessThanOrEqual":"*","status":"unaffected","versionType":"original_commit_for_fix"}]}],"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.12.41","versionEndExcluding":"6.12.105"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.14","versionEndExcluding":"6.18.46"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.14","versionEndExcluding":"7.1.8"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.14","versionEndExcluding":"7.2"}]}]}],"references":[{"url":"https://git.kernel.org/stable/c/69d040448067cebdd5598684db36ce7d8fb2f43e"},{"url":"https://git.kernel.org/stable/c/5f0a99ea721203a4063618aafcca32abf573cb96"},{"url":"https://git.kernel.org/stable/c/ed56a6b58222f9c1f4115a0bd2788dd6ed6022e2"},{"url":"https://git.kernel.org/stable/c/9910e835580fef3bef53b70241dd00c4bffad693"}],"title":"KVM: x86: Cancel delayed I/O APIC EOI handling before destroying vCPUs","x_generator":{"engine":"bippy-1.2.0"}}}}