CVE-2021-46986

Orta

Təsvir

Linux kernel-də aşağıdakı zəiflik aradan qaldırılmışdır: usb: dwc3: gadget: Gadget strukturunu yalnız endpoint-lər azad edildikdən sonra azad edin e81a7018d93a ("usb: dwc3: allocate gadget structure dynamically") commit-inin tərkibində, dwc3_gadget_exit() funksiyasında usb_del_gadget_udc() çağırıldıqda cihazın silinməsi zamanı dwc->gadget strukturunu azad edəcək olan dwc3_gadget_release() əlavə edilmişdir. Lakin, sadəcə gadget-in azad edilməsi "dangling pointer" vəziyyətinə səbəb olur: dwc3_gadget_init_endpoints() funksiyasında yaradılan endpoint-lərin dep->endpoint.ep_list üzvləri dwc->gadget->ep_list-də yerləşən list_head-ə bağlıdır. Beləliklə, dwc->gadget azad edildikdə, siyahıdakı ilk dwc3_ep artıq etibarsız (dangling) prev göstəricisinə malik olur və eyni hal siyahının sonundakı dwc3_ep-nin next göstəricisi üçün də baş verir. Ardınca gələn dwc3_gadget_free_endpoints(), list_del() funksiyasını çağırdıqda "use-after-free" xətasına səbəb olur. Bu problem KASAN aktivləşdirildikdə və drayver unbind prosesi yerinə yetirildikdə aşkar edilmişdir. Sonuncu 568262bf5492 ("usb: dwc3: core: Add shutdown callback for dwc3") commit-i də bunu sönmə (shutdown) zamanı sistemin çökməsi (panic) şəklində ortaya çıxarır. Bunu düzəltmək üçün bir neçə variant mövcuddur. Biri, gadget->ep_list-in özünün list_del() əməliyyatını yerinə yetirmək ola bilər ki, bu da onu digər dwc3_ep zəncirindən ayırır. Digər yanaşma isə bu patch-in etdiyi kimi, usb_del_gadget_udc() çağırışını ayrı "del" və "put" komponentlərinə bölməkdir. Bu, gadget nəhayət usb_put_gadget() ilə azad edilməzdən əvvəl dwc3_gadget_free_endpoints() funksiyasının çağırılmasına imkan verir.

CiddilikOrta
CVSS5.5
İstismar ehtimalı—
MəhsulLinux Kernel
Dərc28 fev 2024
İlk görülmə28 fev 2024

Necə düzəltmək olar

Yeniləyin
  • linux linux_kernel5.10.38, 5.11.22, 5.12.5 və ya daha yeni versiya

Təsirlənən məhsullar

MəhsulTəsirlənən versiyalarDüzəldildiyi versiya
linux linux_kernel5.10 ≤ v < 5.10.38, 5.11 ≤ v < 5.11.22, 5.12 ≤ v < 5.12.5, 5.135.10.38, 5.11.22, 5.12.5

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.