CVE-2024-35981

Orta

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.

CiddilikOrta
CVSS5.5
İstismar ehtimalı—
MəhsulLinux Kernel
Dərc20 may 2024
İlk görülmə20 may 2024

Necə düzəltmək olar

Yeniləyin
  • linux linux_kernel6.1.90, 6.6.29, 6.8.7 və ya daha yeni versiya

Təsirlənən məhsullar

MəhsulTəsirlənən versiyalarDüzəldildiyi versiya
linux linux_kernel5.18 ≤ v < 6.1.90, 6.2 ≤ v < 6.6.29, 6.7 ≤ v < 6.8.7, 6.96.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.

Intelligence 360 paketində

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.