CVE-2022-48862
Təsvir
Linux kernel-də aşağıdakı zəiflik aradan qaldırılıb: vhost: yanlış iotlb yazıları səbəbindən donmuş axının düzəldilməsi vhost_iotlb_add_range_ctx() funksiyasında, start 0 və last ULONG_MAX olduqda diapazon ölçüsü daşa bilər və 0-a bərabər olar. Bunun baş verdiyi hallardan biri istifadəçi sahəsinin (userspace) iova=size=uaddr=0 parametrləri ilə IOTLB mesajı göndərdiyi haldır (vhost_process_iotlb_msg). Beləliklə, size = 0, start = 0, last = ULONG_MAX olan yazı iotlb-yə əlavə edilir. Növbəti dəfə paket göndərildikdə, həmin yanlış yazı səbəbindən iotlb_access_ok() sonsuz dövrə girir. Call Trace: <TASK> iotlb_access_ok+0x21b/0x3e0 drivers/vhost/vhost.c:1340 vq_meta_prefetch+0xbc/0x280 drivers/vhost/vhost.c:1366 vhost_transport_do_send_pkt+0xe0/0xfd0 drivers/vhost/vsock.c:104 vhost_worker+0x23d/0x3d0 drivers/vhost/vhost.c:372 kthread+0x2e9/0x3a0 kernel/kthread.c:377 ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:295 </TASK> syzbot tərəfindən burada bildirilmişdir: https://syzkaller.appspot.com/bug?extid=0abd373e2e50d704db87 Bunu düzəltmək üçün iki tədbir görülmüşdür: 1. İstifadəçi sahəsi ölçüsü 0 olan diapazonu xəritələndirmyi (map) istədikdə vhost_chr_write_iter() funksiyasında -EINVAL qaytarılır. 2. vhost_iotlb_add_range_ctx() funksiyası [0, ULONG_MAX] diapazonunu iki yazıya bölərək emal etmək üçün düzəldilmişdir.
Necə düzəltmək olar
- linux linux_kernel5.15.29, 5.16.15 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.7 ≤ v < 5.15.29, 5.16 ≤ v < 5.16.15 | 5.15.29, 5.16.15 |
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.