CVE-2022-49159

Yüksək

Təsvir

Linux kernel-də aşağıdakı zəiflik aradan qaldırılmışdır: scsi: qla2xxx: SRB üçün istinad sayğacının tətbiqi Timeout idarəçisi və tamamlanma funksiyası arasında yarış vəziyyəti (race condition) mövcuddur. qla2x00_async_iocb_timeout() işləməyə başladıqda, o, normal cavab yolu (firmware vasitəsilə?) tərəfindən preempt edilə bilər. qla24xx_async_gpsc_sp_done() SRB-ni şərtsiz olaraq azad edir. Yenidən qla2x00_async_iocb_timeout()-a qayıdıldıqda, qla24xx_async_abort_cmd() azad edilmiş sp->qpair göstəricisinə müraciət edəcəkdir: qla2xxx [0000:83:00.0]-2871:0: Async-gpsc timeout - hdl=63d portid=234500 50:06:0e:80:08:77:b6:21. qla2xxx [0000:83:00.0]-2853:0: Async done-gpsc res 0, WWPN 50:06:0e:80:08:77:b6:21 qla2xxx [0000:83:00.0]-2854:0: Async-gpsc OUT WWPN 20:45:00:27:f8:75:33:00 speeds=2c00 speed=0400. qla2xxx [0000:83:00.0]-28d8:0: qla24xx_handle_gpsc_event 50:06:0e:80:08:77:b6:21 DS 7 LS 6 rc 0 login 1|1 rscn 1|0 lid 5 BUG: unable to handle kernel NULL pointer dereference at 0000000000000004 IP: qla24xx_async_abort_cmd+0x1b/0x1c0 [qla2xxx] Bunun aşkar həlli istinad sayğacının (reference counter) tətbiqidir. Normal kod yolu ('yaxşı' hal) üçün bir istinad və timeout yolu üçün bir istinad götürülür. Normal yaxşı hal ilə timeout/abort idarəçisi arasında daim yarış olduğu üçün biz bunu seriyallaşdırmalıyıq. Həmçinin, idarəçilər arasında hər hansı ardıcıllığı fərz edə bilmərik. Bu yavaş yol (slow path) olduğundan, kilidlər (locks) vasitəsilə müvafiq sinxronizasiyadan istifadə edə bilərik. Taymeri ləğv edə bildikdə (del_timer 1 qaytardıqda), timeout idarəçisinin vaxtı hələ bitmədiyini, buna görə də heç bir xəta idarəetməsinin davam etmədiyini bilirik, beləliklə, istinad sayğacını təhlükəsiz şəkildə bir vahid azalda bilərik. Əgər taymeri ləğv edə bilmiriksə, deməli abort idarəçisi işləyir. Biz kref_put() çağırmazdan əvvəl abort idarəçilərində sp->done() funksiyasının çağırıldığından əmin olmalıyıq.

CiddilikYüksək
CVSS8.8
İstismar ehtimalı—
MəhsulLinux Kernel
Dərc26 fev 2025
İlk görülmə26 fev 2025

Necə düzəltmək olar

Yeniləyin
  • linux linux_kernel5.15.33, 5.16.19, 5.17.2 və ya daha yeni versiya

Təsirlənən məhsullar

MəhsulTəsirlənən versiyalarDüzəldildiyi versiya
linux linux_kernel5.15 ≤ v < 5.15.33, 5.16 ≤ v < 5.16.19, 5.17 ≤ v < 5.17.25.15.33, 5.16.19, 5.17.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.

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.