CVE-2022-49557
Təsvir
Linux kernel-də aşağıdakı zəiflik aradan qaldırılmışdır: x86/fpu: KVM: Qonaq FPU uABI ölçüsünün bazasını sizeof(struct kvm_xsave) olaraq təyin edin KVM-in qonaq FPU-nun başlanğıc uABI ölçüsü 'struct kvm_xsave', yəni KVM-in tarixi uABI ölçüsü kimi təyin edilmişdir. İstifadəçi sahəsi üçün FPU vəziyyətini yadda saxlayarkən, KVM (indi isə FPU) host XSAVE-i dəstəkləməsə belə, XSAVE başlıığında FP+SSE bitlərini təyin edir. XSAVE başlıığının təyin edilməsi, VM-in XSAVE-i dəstəkləyən bir host-a miqrasiya edilməsinə imkan verir və bu zaman yeni host-un XSAVE ilə uyğun ola bilən və ya olmayan FPU vəziyyətini idarə etməsinə ehtiyac qalmır. uABI ölçüsünün host-un standart ölçüsünə təyin edilməsi, XSAVE-siz hostlarda (məsələn, Core2 CPU-larda) işlədikdə sərhədlərdən kənar yazmalara (FP+SSE bitlərinin təyin edilməsi) və məlumatların korlanmasına (xoşbəxtlikdən KASAN tərəfindən aşkar edilmişdir) səbəb olur. Standart ölçü KVM-in tarixi uABI ölçüsündən böyükdürsə WARN xəbərdarlığı verilir; FPU ölçüsünü tarixi ölçüdən artıran bütün funksiyalar könüllü seçim (opt-in) əsasında olmalıdır. ================================================================== BUG: KASAN: slab-out-of-bounds in fpu_copy_uabi_to_guest_fpstate+0x86/0x130 Read of size 8 at addr ffff888011e33a00 by task qemu-build/681 CPU: 1 PID: 681 Comm: qemu-build Not tainted 5.18.0-rc5-KASAN-amd64 #1 Hardware name: /DG35EC, BIOS ECG3510M.86A.0118.2010.0113.1426 01/13/2010 Call Trace: <TASK> dump_stack_lvl+0x34/0x45 print_report.cold+0x45/0x575 kasan_report+0x9b/0xd0 fpu_copy_uabi_to_guest_fpstate+0x86/0x130 kvm_arch_vcpu_ioctl+0x72a/0x1c50 [kvm] kvm_vcpu_ioctl+0x47f/0x7b0 [kvm] __x64_sys_ioctl+0x5de/0xc90 do_syscall_64+0x31/0x50 entry_SYSCALL_64_after_hwframe+0x44/0xae </TASK> Allocated by task 0: (stack is not available) The buggy address belongs to the object at ffff888011e33800 which belongs to the cache kmalloc-512 of size 512 The buggy address is located 0 bytes to the right of 512-byte region [ffff888011e33800, ffff888011e33a00) The buggy address belongs to the physical page: page:0000000089cd4adb refcount:1 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x11e30 head:0000000089cd4adb order:2 compound_mapcount:0 compound_pincount:0 flags: 0x4000000000010200(slab|head|zone=1) raw: 4000000000010200 dead000000000100 dead000000000122 ffff888001041c80 raw: 0000000000000000 0000000080100010 00000001ffffffff 0000000000000000 page dumped because: kasan: bad access detected Memory state around the buggy address: ffff888011e33900: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ffff888011e33980: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >ffff888011e33a00: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc ^ ffff888011e33a80: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc ffff888011e33b00: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc ================================================================== Disabling lock debugging due to kernel taint
Necə düzəltmək olar
- linux linux_kernel5.17.13, 5.18.2 və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| linux linux_kernel | 5.17 ≤ v < 5.17.13, 5.18 ≤ v < 5.18.2 | 5.17.13, 5.18.2 |
Versiyanızı yoxlayın
Məhsulu seçin və istifadə etdiyiniz versiyanı yazın; versiyanın təsirlənən aralıqda olub-olmadığını görün.
Attack Surface Management
Domenlərinizə bağlı aktivləri, onlarda işləyən texnologiyaları və məlum zəiflikləri bir siyahıda görün.