CVE-2022-50145
Təsvir
Linux kernel-də aşağıdakı zəiflik aradan qaldırılıb: dmaengine: sf-pdma: DMA kanalı üçün çoxaxınlı (multithread) dəstəyin əlavə edilməsi DMA kanalını əldə etdikdə və onu birdən çox axında istifadə etməyə çalışdıqda, bu, sistemdə "oops" xətasına və donmaya səbəb olur. % echo 64 > /sys/module/dmatest/parameters/threads_per_chan % echo 10000 > /sys/module/dmatest/parameters/iterations % echo 1 > /sys/module/dmatest/parameters/run [ 89.480664] Unable to handle kernel NULL pointer dereference at virtual address 00000000000000a0 [ 89.488725] Oops [#1] [ 89.494708] CPU: 2 PID: 1008 Comm: dma0chan0-copy0 Not tainted 5.17.0-rc5 [ 89.509385] epc : vchan_find_desc+0x32/0x46 [ 89.513553] ra : sf_pdma_tx_status+0xca/0xd6 Bu, məlumat yarışı (data race) səbəbindən baş verir. device_prep_dma_memcpy() çağırıldığı an hər bir axın kanalın deskriptorunu yenidən yazır. Bu, drayverin düzgün deskriptoru istifadə etdiyini düşündüyü, lakin həmin deskriptorun əslində azad edildiyi və ya digəri ilə əvəz olunduğu vəziyyətə gətirib çıxarır. Mövcud düzəlişlərlə deskriptor yalnız istifadə edildikdən sonra öz dəyərini dəyişir. Yeni deskriptor artıq göndərilməyə hazır olan deskriptorlarla doldurulmuş vc->desc_issued növbəsindən alınır. Axınların DMA kanalı deskriptoruna birbaşa girişi yoxdur. İndi sadəcə sonrakı emal üçün deskriptoru növbəyə almaq mümkündür.
Necə düzəltmək olar
- linux linux_kernel5.10.137, 5.15.61, 5.18.18, 5.19.2 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.5 ≤ v < 5.10.137, 5.11 ≤ v < 5.15.61, 5.16 ≤ v < 5.18.18, 5.19 ≤ v < 5.19.2 | 5.10.137, 5.15.61, 5.18.18, 5.19.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.
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.