CVE-2026-63806

Yüksek

Açıklama

Linux kernel içerisinde aşağıdaki güvenlik açığı giderilmiştir: KVM: ioeventfd datamatch içerisindeki konuk tarafından tetiklenebilir BUG_ON() ifadesini get_unaligned() ile değiştirin İlk eklendiği 2009 yılından beri erişilebilir olan bir BUG_ON() kaldırılmış ve bunun yerine potansiyel olarak hizalanmamış erişimleri gerçekleştirmek için get_unaligned() kullanılmıştır. Belirli bir depolama işlemi için, KVM x86 emülatörü hedef operanddaki tüm değeri x86_emulate_ctxt.dst içinde takip eder. Eğer hedef bellek ise ve hedef birden fazla sayfaya bölünüyorsa ve/veya emüle edilmiş MMIO ise, KVM her parçayı bağımsız olarak işler. Örneğin, sayfa ofseti 0xffc'den başlayan bir sayfa bölünmesinde KVM, ilk sayfaya 4 bayt yazar, ardından kalan baytları ikinci sayfaya yazar ve her ikisi için de kaynak olarak (uygun ofsetlerle birlikte) ctxt->dst'yi kullanır. Hedef hem bir sayfayı bölüyor hem de ikinci sayfada emüle edilmiş MMIO'ya denk geliyorsa, KVM önce ilk sayfaya yazmayı tamamlar, ardından ikinci sayfadaki MMIO erişimini emüle eder. İkinci sayfanın 0 ofsetinde datamatch etkinleştirilmiş bir ioeventfd varsa, KVM depolamanın geri kalanını potansiyel bir ioeventfd sinyali olarak işleyecektir. Tüm bunlar bir araya getirildiğinde, eğer konuk, sayfa ofseti N'den başlayarak bir sayfayı bölen bir depolama işlemi gerçekleştirirse ve ikinci sayfanın 0 ofsetinde datamatch etkinleştirilmiş bir ioeventfd varsa, KVM kaynağı &dst.valptr[N] olarak kullanarak datamatch kontrolü yapacaktır. dst (ve dolayısıyla dst.valptr) 32-bayt hizalı olduğundan, N @len değerine göre hizalı değilse BUG_ON() tetiklenir. Örneğin, sayfa ofseti 0xffc'de, uzunluğu 8 olan bir ioeventfd'ye yapılan 16-baytlık bir depolama işleminde, ioeventfd_in_range() içindeki tüm başlangıç kontrolleri başarılı olacak ve @val 4-bayt hizalı olduğu ancak 8-bayt hizalı olmadığı için BUG_ON() tetiklenecektir. ------------[ cut here ]------------ kernel BUG at arch/x86/kvm/../../../virt/kvm/eventfd.c:783! Oops: invalid opcode: 0000 [#1] SMP CPU: 0 UID: 1000 PID: 615 Comm: repro Not tainted 7.1.0-rc2-ff238429d1ea #365 PREEMPT Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 0.0.0 02/06/2015 RIP: 0010:ioeventfd_write+0x6c/0x70 [kvm] Call Trace: <TASK> __kvm_io_bus_write+0x85/0xb0 [kvm] kvm_io_bus_write+0x53/0x80 [kvm] vcpu_mmio_write+0x66/0xf0 [kvm] emulator_read_write_onepage+0x12a/0x540 [kvm] emulator_read_write+0x109/0x2b0 [kvm] x86_emulate_insn+0x4f8/0xfb0 [kvm] x86_emulate_instruction+0x181/0x790 [kvm] kvm_mmu_page_fault+0x313/0x630 [kvm] vmx_handle_exit+0x18a/0x590 [kvm_intel] kvm_arch_vcpu_ioctl_run+0xc81/0x1c90 [kvm] kvm_vcpu_ioctl+0x2d5/0x970 [kvm] __x64_sys_ioctl+0x8a/0xd0 do_syscall_64+0xb7/0x890 entry_SYSCALL_64_after_hwframe+0x4b/0x53 RIP: 0033:0x7f19c931a9bf </TASK> Modules linked in: kvm_intel kvm irqbypass ---[ end trace 0000000000000000 ]--- İdeal bir dünyada çözüm, sadece BUG_ON() ifadesini silmek olurdu çünkü KVM x86, CPL0'daki "normal" bellek erişimlerinde hizalama kontrolleri yapmaz. Ne yazık ki C99 bunu imkansız kılar; x86 mimarisi buna izin verse de, hizalanmamış bir işaretçinin doğrudan çözümlenmesi C dilinde tanımlanmamış davranıştır (undefined behavior); örneğin CONFIG_UBSAN_ALIGNMENT=y ile çalıştırıldığında hatalara yol açar.

ÖnemYüksek
CVSS7.1
İstismar olasılığı—
ÜrünLinux Kernel
Yayın19 Tem 2026
İlk görülme19 Tem 2026

Nasıl düzeltilir

Güncelleyin
  • linux linux_kernel5.10.261, 5.15.212, 6.1.178, 6.6.145, 6.12.95, 6.18.38, 7.1.3 ya da sonraki bir sürüm

Etkilenen ürünler

ÜrünEtkilenen sürümlerDüzeltildiği sürüm
linux linux_kernel2.6.32 ≤ v < 5.10.261, 5.11 ≤ v < 5.15.212, 5.16 ≤ v < 6.1.178, 6.2 ≤ v < 6.6.145, 6.7 ≤ v < 6.12.95, 6.13 ≤ v < 6.18.38, 6.19 ≤ v < 7.1.35.10.261, 5.15.212, 6.1.178, 6.6.145, 6.12.95, 6.18.38, 7.1.3

Sürümünüzü kontrol edin

Ürünü seçin ve kullandığınız sürümü yazın; sürümün etkilenen aralıkta olup olmadığını görün.

Intelligence 360 paketinde

Attack Surface Management

Alan adlarınıza bağlı varlıkları, bu varlıklarda çalışan teknolojileri ve bilinen zafiyetleri tek listede görün.

CVE-2026-63806 · Linux Kernel · Dark Radar