CVE-2022-49398

Orta

Təsvir

Linux kernel-də aşağıdakı zəiflik aradan qaldırılıb: usb: dwc3: gadget: giveback istifadə edildikdə list_for_each_entry_safe() funksiyasının əvəz edilməsi list_for_each_entry_safe() makrosu cari elementi (n) və ondan sonrakı elementi (n+1) saxlayır ki, siyahını korlamadan n təhlükəsiz şəkildə silinsin. Lakin, siyahıda gəzərkən və gadget giveback vasitəsilə elementləri silərkən, DWC3 kilidi qısaca sərbəst buraxılır və bu, digər rutinlərin icrasına imkan verir. Belə bir vəziyyət yaranır ki, dwc3_gadget_ep_cleanup_cancelled_requests() vasitəsilə cancelled_list-dən elementlər silindikdə, eyni zamanda pullup disable rutini də paralel olaraq işləyir (UDC unbind səbəbi ilə). Təmizləmə rutini n-i sildiyi, pullup disable isə n+1-i sildiyi üçün, təmizləmə rutini DWC3 kilidini yenidən götürdükdə artıq silinmiş/işlənmiş sorğuya istinad edir. Siyahı sazlamaları (list debug) aktiv olduqda, bu, sistemin çökməsinə (panic) səbəb olur. Gadget giveback istifadə olunan bütün yerlərdə makrosun əvəzləndiyindən əmin olun. Nümunə çağırış stekləri: Thread#1: __dwc3_gadget_ep_set_halt() - CLEAR HALT -> dwc3_gadget_ep_cleanup_cancelled_requests() ->list_for_each_entry_safe() ->dwc3_gadget_giveback(n) ->dwc3_gadget_del_and_unmap_request()- n silindi [cancelled_list] ->spin_unlock ->Thread#2 icra olunur ... ->dwc3_gadget_giveback(n+1) ->Artıq silinib! Thread#2: dwc3_gadget_pullup() ->dwc3 spin_lock gözlənilir ... ->Thread#1 kilidi sərbəst buraxdı ->dwc3_stop_active_transfers() ->dwc3_remove_requests() ->cancelled_list-dən n+1 elementi götürür (n Thread#1 tərəfindən silinib) ->dwc3_gadget_giveback() ->dwc3_gadget_del_and_unmap_request()- n+1 silindi [cancelled_list] ->spin_unlock

CiddilikOrta
CVSS5.5
İ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_kernel4.20, 5.15.47, 5.17.15, 5.18.4 və ya daha yeni versiya

Təsirlənən məhsullar

MəhsulTəsirlənən versiyalarDüzəldildiyi versiya
linux linux_kernel4.19.57 ≤ v < 4.20, 5.0 ≤ v < 5.15.47, 5.16 ≤ v < 5.17.15, 5.18 ≤ v < 5.18.44.20, 5.15.47, 5.17.15, 5.18.4

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-2022-49398 · Linux Kernel · Dark Radar