CVE-2026-74639
Təsvir
Linux nüvəsində aşağıdakı zəiflik aradan qaldırılıb: ALSA: us144mkii: yenidən təqdimat zamanı capture URB-lərini yenidən lövbərləyin (re-anchor) capture_urb_complete() hər bir capture URB-sini lövbərləmədən yenidən təqdim edir: usb_get_urb(urb); ret = usb_submit_urb(urb, GFP_ATOMIC); Lövbərləmə URB-nin yox, təqdimatın xüsusiyyətidir. Geri qaytarma yolu urb->complete() funksiyasından əvvəl usb_unanchor_urb() funksiyasını çağırır, buna görə də öz tamamlanma idarəedicisindən yenidən təqdim edilən URB lövbərdən kənarlaşır. Capture URB-ləri axının başlamasında bir dəfə lövbərlənir, beləliklə ilk tamamlanmadan etibarən tascam->capture_anchor boş qalır. tascam_free_urbs(), tascam_disconnect(), tascam_suspend() və işi dayandırma yolu, hər hansı bir resurs azad edilməzdən əvvəl capture URB-lərini toplamaq üçün usb_kill_anchored_urbs(&tascam->capture_anchor) funksiyasını çağırır. Lövbər boş olduqda bu çağırışlar dərhal geri dönür və URB-lər host kontrollerdə növbədə qalır. Daha sonra tascam_free_urbs() usb_free_coherent() vasitəsilə capture transfer buferlərini geri qaytarır və snd_card_free() tascam-ı (card->private_data) ehtiva edən snd_card ayırmasını azad edir. Kontroller daha sonra növbədə olan URB-ləri tamamlayaraq cihaz tərəfindən təmin edilən məlumatları azad edilmiş transfer buferinə yazır və capture_urb_complete() azad edilmiş drayver obyektinin istinadını (dereference) həyata keçirir. 7.2.0-rc5 (arm64) versiyasında KASAN: BUG: KASAN: slab-use-after-free in dummy_timer Write of size 512 at addr ffff000015b62000 __asan_memcpy dummy_timer hrtimer_run_softirq Allocated by task 64: usb_alloc_coherent tascam_alloc_urbs tascam_probe Freed by task 170: usb_free_coherent tascam_free_urbs tascam_disconnect usb_unbind_interface BUG: KASAN: slab-use-after-free in capture_urb_complete Read of size 4 at addr ffff0000170ee878 Freed by task 170: release_card_device snd_card_free tascam_disconnect İstinad sayının artırılması ilə yenidən təqdimat arasında usb_anchor_urb() funksiyasını bərpa edin. Bu həmçinin idarəedicinin usb_unanchor_urb() uğursuzluq budağını yenidən mənalı edir və usb_kill_anchored_urbs() funksiyasını disconnect, suspend və stop-work yollarında baryer kimi bərpa edir. Lövbərləmə, URB-nin ilkin təqdimatdan artıq lövbərləndiyi fərziyyəsinə əsasən silinmişdi, lakin ilk geri qaytarma prosesi baş verdikdən sonra bu fərziyyə düzgün qalmır. XBOW tərəfindən aşkar edilmiş, Baul Lee <[email protected]> tərəfindən triaj edilmişdir.
Necə düzəltmək olar
- Linux Linux7779249561d14b8a17c0c83783225794e24a587d, a5548ce916594c811bd90ce33d67baa3557a6791, 2615f0fb90df8cf5a96133ca4be74294ed288604, 6.18.45, 7.1.9 və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| Linux Linux | 16f14f55141d4c55c3f321f93c328fff7cd6860a ≤ v < 7779249561d14b8a17c0c83783225794e24a587d, ab1db64912428cdf06a4f9542e16e0575e9ad59f ≤ v < a5548ce916594c811bd90ce33d67baa3557a6791, 5cff1529a2f9b3461a7f5a6e36a86682fc290534 ≤ v < 2615f0fb90df8cf5a96133ca4be74294ed288604, 6.18.39 ≤ v < 6.18.45, 7.1.4 ≤ v < 7.1.9 | 7779249561d14b8a17c0c83783225794e24a587d, a5548ce916594c811bd90ce33d67baa3557a6791, 2615f0fb90df8cf5a96133ca4be74294ed288604, 6.18.45, 7.1.9 |
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.