{"id":7516,"date":"2026-09-04T18:49:35","date_gmt":"2026-09-04T10:49:35","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-74517"},"modified":"2026-09-04T18:49:35","modified_gmt":"2026-09-04T10:49:35","slug":"cve-2026-74517","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-74517","title":{"rendered":"CVE-2026-74517 [CRITICAL] &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nKVM: x86: Cancel dela"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>KVM: x86: Cancel delayed I\/O APIC EOI handling before destroying vCPUs<\/p>\n<p>Cancel (and flush) the I\/O APIC&#8217;s delayed EOI handling work during the<br \/>\n&#8220;pre VM destroy&#8221; phase, before vCPUs are destroyed, as processing the EOI<br \/>\nbroadcast will inject another IRQ if the line is asserted, i.e. will try<br \/>\nto deliver an IRQ to the target vCPU(s).  Canceling the work after vCPUs<br \/>\nare destroyed leads to UAF if the delayed work is processed after vCPUs are<br \/>\ndestroyed.<\/p>\n<p>  BUG: KASAN: slab-use-after-free in __kvm_irq_delivery_to_apic_fast+0x9bf\/0xa20 arch\/x86\/kvm\/lapic.c:1250<br \/>\n  Read of size 8 at addr ffff8880499abea0 by task kworker\/1:2\/1218<\/p>\n<p>  CPU: 1 UID: 0 PID: 1218 Comm: kworker\/1:2 Not tainted 7.1.0-rc7 #5 PREEMPT(lazy)<br \/>\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<br \/>\n  Workqueue: events kvm_ioapic_eoi_inject_work<br \/>\n  Call Trace:<\/p>\n<p>   __dump_stack lib\/dump_stack.c:94<br \/>\n   dump_stack_lvl+0x100\/0x190 lib\/dump_stack.c:120<br \/>\n   print_address_description mm\/kasan\/report.c:378<br \/>\n   print_report+0x139\/0x4ad mm\/kasan\/report.c:482<br \/>\n   kasan_report+0xe4\/0x1d0 mm\/kasan\/report.c:595<br \/>\n   __kvm_irq_delivery_to_apic_fast+0x9bf\/0xa20 arch\/x86\/kvm\/lapic.c:1250<br \/>\n   __kvm_irq_delivery_to_apic+0xd8\/0xbf0 arch\/x86\/kvm\/lapic.c:1345<br \/>\n   kvm_irq_delivery_to_apic arch\/x86\/kvm\/lapic.h:129<br \/>\n   ioapic_service+0x308\/0x590 arch\/x86\/kvm\/ioapic.c:492<br \/>\n   kvm_ioapic_eoi_inject_work+0x13c\/0x190 arch\/x86\/kvm\/ioapic.c:532<br \/>\n   process_one_work+0xa59\/0x19a0 kernel\/workqueue.c:3314<br \/>\n   process_scheduled_works kernel\/workqueue.c:3397<br \/>\n   worker_thread+0x5eb\/0xe50 kernel\/workqueue.c:3478<br \/>\n   kthread+0x370\/0x450 kernel\/kthread.c:436<br \/>\n   ret_from_fork+0x72b\/0xd30 arch\/x86\/kernel\/process.c:158<br \/>\n   ret_from_fork_asm+0x1a\/0x30 arch\/x86\/entry\/entry_64.S:245<\/p>\n<p>Note, the VM is unreachable once kvm_destroy_vm() starts, and scheduling<br \/>\nnew work via kvm_ioapic_send_eoi() can only be done via KVM_RUN, i.e.<br \/>\nrequires a live vCPU.<\/p>\n<p>Alternatively, KVM could simply destroy the I\/O APIC during the &#8220;pre&#8221; phase<br \/>\nof VM destruction, but that gets more than a bit sketchy as KVM expects the<br \/>\nI\/O APIC to exist if ioapic_in_kernel() is true, and nested virtualization<br \/>\nin particular has a bad habit of touching VM-scope state during vCPU<br \/>\ndestruction.  E.g. attempting to free the PIC during the pre phase would<br \/>\nlead to a NULL pointer dereference in kvm_cpu_has_extint(), and it&#8217;s not<br \/>\nhard to imagine the I\/O APIC having a similar flaw.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>KVM: x86: Cancel delayed I\/O APIC EOI handling before destroying vCPUs<\/p>\n<p>Cancel (and flush) the I\/O APIC&#8217;s delayed EOI handling work<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-7516","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/7516","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln"}],"about":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/types\/vuln"}],"wp:attachment":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=7516"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=7516"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=7516"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}