CVE-2024-26935

Orta

Təsvir

Linux nüvəsində aşağıdakı zəiflik aradan qaldırılmışdır: scsi: core: Silinməmiş procfs host kataloqu reqressiyasının düzəldilməsi fc663711b944 ("scsi: core: Remove the /proc/scsi/${proc_name} directory earlier") kommiti, scsi_remove_host() funksiyasına scsi_proc_hostdir_rm() çağırışını əlavə etməklə modulların yüklənməsi/boşaldılması ilə bağlı bir xətanı düzəltmişdi. Lakin bu, hostdir_rm() rutinə potensial dublikat çağırışa səbəb oldu, çünki həmin rutin həmçinin scsi_host_dev_release() tərəfindən də çağırılır. Bu, reqressiya hesabatına səbəb oldu və daha sonra be03df3d4bfe ("scsi: core: Fix a procfs host directory removal regression") kommiti ilə düzəldildi. Həmin düzəliş sadəcə dev_release() funksiyasından hostdir_rm() çağırışını çıxardı. Lakin belə olur ki, bu proc kataloqu scsi_host_alloc() zamanı yaradılır və həmin funksiya scsi_host_dev_release() ilə "cütləşir", scsi_remove_host() isə scsi_add_host() ilə cütləşir. Başqa sözlə, görünür ki, proc kataloqunun dev_release() zamanı silinməsinin səbəbi, SCSI host strukturunun ayrıldığı, lakin scsi_add_host() çağırışının baş vermədiyi hallar idi. Məsələn, bəzi xəta yollarında məhz belə bir model mövcuddur. Syzkaller bunu USB raw gadget cihazından istifadə edərək, usb_stor_probe2() funksiyasında usb-storage drayverində xəta törətməklə aktivləşdirir. Həmin yolu yoxlayaraq görə bilərik ki, BadDevice etiketi SCSI host ayırmasından sonra scsi_host_put() funksiyasına aparır, lakin belə bir yolda scsi_add_host() çağırışı yoxdur. Bu, dmesg-də aşağıdakı kimi mesajlara (və SCSI host proc strukturunun sızmasına) səbəb olur: usb-storage 4-1:87.51: USB Mass Storage device detected proc_dir_entry 'scsi/usb-storage' already registered WARNING: CPU: 1 PID: 3519 at fs/proc/generic.c:377 proc_register+0x347/0x4e0 fs/proc/generic.c:376 Düzgün həll yolu dev_release() funksiyasında yenə də scsi_proc_hostdir_rm() çağırışını etmək, lakin bunu SHOST_CREATED vəziyyət yoxlaması ilə qorumaqdır; scsi_host_dev_release() funksiyasında hətta bunu detallandıran şərh var: belə bir şərt, usb-storage halında olduğu kimi, SCSI hostun ayrıldığı, lakin {add,remove}_host() çağırışlarının olmadığı hallar üçün nəzərdə tutulmuşdur. Biz burada bunu təklif edirik və bununla usb-storage-ın xəta yolu artıq xəbərdarlığı tetikləmir.

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

Necə düzəltmək olar

Yeniləyin
  • linux linux_kernel5.4.274, 5.10.215, 5.15.154, 6.1.84, 6.3, 6.6.24, 6.7.12, 6.8.3 və ya daha yeni versiya

Təsirlənən məhsullar

MəhsulTəsirlənən versiyalarDüzəldildiyi versiya
linux linux_kernel5.4.238 ≤ v < 5.4.274, 5.10.176 ≤ v < 5.10.215, 5.15.104 ≤ v < 5.15.154, 6.1.21 ≤ v < 6.1.84, 6.2.8 ≤ v < 6.3, 6.3.1 ≤ v < 6.6.24, 6.7 ≤ v < 6.7.12, 6.8 ≤ v < 6.8.3, 6.3, 6.95.4.274, 5.10.215, 5.15.154, 6.1.84, 6.3, 6.6.24, 6.7.12, 6.8.3
debian debian_linux10.0—

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.

CVE-2024-26935 · Linux Kernel · Dark Radar