CVE-2024-35981
Təsvir
Linux nüvəsində aşağıdakı zəiflik aradan qaldırılmışdır: virtio_net: Dəstəklənmədiyi təqdirdə RSS açarını göndərməyin virtio_net-də RSS seçimlərini təyin edərkən yaranan bir xəta bütün maşının işini poza bilər və nüvəni sonsuz döngəyə salar. virtionet olan hər hansı QEMU virtual maşınında aşağıdakı əmrini yerinə yetirmək bu problemi təkrar yaradacaqdır: # ethtool -X eth0 hfunc toeplitz Problemin baş vermə mexanizmi belədir: 1) ethtool_set_rxfh() funksiyası virtnet_set_rxfh()-i çağırır. 2) virtnet_set_rxfh() funksiyası virtnet_commit_rss_command()-i çağırır. 3) virtnet_commit_rss_command() rss scatter-gather üçün 4 giriş doldurur. 4) Yuxarıdakı əmrdə açar olmadığı üçün, rss_key_size == 0 olduğundan sonuncu scatter-gather girişi sıfırlanır. sg_buf_size = vi->rss_key_size; 5) Bu bufer qemu-ya ötürülür, lakin qemu sıfır uzunluqlu buferi qəbul etmir və virtqueue_map_desc() (QEMU funksiyası) daxilində aşağıdakıları yerinə yetirir: if (!sz) { virtio_error(vdev, "virtio: zero sized buffers are not allowed"); 6) virtio_error() (həmçinin QEMU funksiyası) cihazı xarab (broken) kimi qeyd edir: vdev->broken = true; 7) Qemu prosesi dayandırır və bu problemli nüvəyə cavab vermir. 8) Nüvə cavabın geri qayıtmasını gözləyir (virtnet_send_command() funksiyası). 9) Nüvə aşağıdakıları yerinə yetirərək gözləyir: while (!virtqueue_get_buf(vi->cvq, &tmp) && !virtqueue_is_broken(vi->cvq)) cpu_relax(); 10) Yuxarıdakı funksiyalardan heç biri doğru (true) qaytarmır, buna görə də nüvə burada sonsuz döngəyə girir. Nəzərə alın ki, virtqueue_is_broken() qemu-nun `vdev->broken` parametrinə baxmır, ona görə də virtio-nun QEMU tərəfində xarab olduğunu heç vaxt anlamır. Bu problem, cihazda müvafiq funksiya mövcud olmadıqda RSS əmrlərinin göndərilməməsi ilə həll edilmişdir.
Necə düzəltmək olar
- linux linux_kernel6.1.90, 6.6.29, 6.8.7 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.18 ≤ v < 6.1.90, 6.2 ≤ v < 6.6.29, 6.7 ≤ v < 6.8.7, 6.9 | 6.1.90, 6.6.29, 6.8.7 |
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.