CVE-2026-43324

Yüksək

Təsvir

Linux kernel-də aşağıdakı zəiflik aradan qaldırılmışdır: USB: dummy-hcd: İnterrupt sinxronizasiya xətasının düzəldilməsi Bu, dummy-hcd drayverindəki sinxronizasiya xətasını aradan qaldırır. Xətanın kifayət qədər mürəkkəb tarixçəsi var. Sinxronizasiya mexanizmi 7dbd8f4cabd9 ("USB: dummy-hcd: Fix erroneous synchronization change") commit-i ilə tətbiq edilmişdir və burada emulate edilmiş "interrupts enabled" flag-i ilə birlikdə synchronize_irq() funksiyasını emulate edən kod əlavə edilmişdir (o, bütün cari handler callback-ləri geri dönənə qədər gözləyir). Lakin emulate edilmiş interrupt-disable prosesi çox gec baş verirdi — handler callback rutinlərini ehtiva edən drayverə artıq onun unbound olduğu və daha çox callback-in baş verməyəcəyi bildirildikdən sonra. 4a5d797a9f9c ("usb: gadget: dummy_hcd: fix gpf in gadget_setup") commit-i synchronize_irq() emulyasiya kodunu dummy_stop()-dan unbind callback-indən əvvəl işləyən dummy_pullup()-a köçürməklə bunu düzəltməyə çalışmışdır. Buna baxmayaraq, hələ də race condition halları mövcud idi, çünki emulate edilmiş interrupt-disable yenə də çox gec baş verirdi. Bu kodu dummy_pullup()-a köçürmək mümkün deyildi, çünki həmin rutin yaxınlaşan unbind-dan başqa səbəblərə görə də çağırıla bilər. Buna görə də 7dc0c55e9f30 ("USB: UDC core: Add udc_async_callbacks gadget op") və 04145a03db9d ("USB: UDC: Implement udc_async_callbacks in dummy-hcd") commit-ləri UDC core-na emulate edilmiş interrupt-ların və onların callback-lərinin tam olaraq nə vaxt deaktiv edilməli olduğunu dummy-hcd-yə bildirməyə imkan verən bir API əlavə etmişdir. Bu bizi hazırkı vəziyyətə gətirir ki, bu da hələ də yanlışdır, çünki emulate edilmiş synchronize_irq() emulate edilmiş interrupt-disable-dan əvvəl baş verir! Bu qəbul edilməzdir, çünki bu o deməkdir ki, synchronize_irq() emulyasiyası işlədikdən sonra daha çox emulate edilmiş interrupt-lar baş verə bilər və bu da gadget drayveri unbound edildiyi zaman callback handler-in işləyə bilməsi ehtimalına gətirib çıxarır. Bunu düzəltmək üçün biz synchronize_irq() emulyasiya kodunu bir daha emulate edilmiş interrupt request-lərin aktivləşdirilməsi və deaktiv edilməsinə cavabdeh olan dummy_udc_async_callbacks() rutinə köçürməliyik. Sinxronizasiya indi emulate edilmiş interrupt-lar deaktiv edildikdən dərhal sonra işləyəcək ki, bu da olması lazım olan yerdir.

CiddilikYüksək
CVSS7.8
İstismar ehtimalı—
MəhsulLinux Kernel
Dərc8 may 2026
İlk görülmə8 may 2026

Necə düzəltmək olar

Yeniləyin
  • linux linux_kernel5.15.203, 6.1.168, 6.6.134, 6.12.81, 6.18.22, 6.19.12 və ya daha yeni versiya

Təsirlənən məhsullar

MəhsulTəsirlənən versiyalarDüzəldildiyi versiya
linux linux_kernel5.14 ≤ v < 5.15.203, 5.16 ≤ v < 6.1.168, 6.2 ≤ v < 6.6.134, 6.7 ≤ v < 6.12.81, 6.13 ≤ v < 6.18.22, 6.19 ≤ v < 6.19.12, 7.05.15.203, 6.1.168, 6.6.134, 6.12.81, 6.18.22, 6.19.12

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.