CVE-2026-43324
Açıklama
Linux kernel içerisinde aşağıdaki güvenlik açığı giderilmiştir: USB: dummy-hcd: Kesme senkronizasyon hatası düzeltildi Bu işlem, dummy-hcd sürücüsündeki bir senkronizasyon hatasını gidermektedir. Hatanın oldukça karmaşık bir geçmişi vardır. Senkronizasyon mekanizması, emüle edilmiş bir "kesmeler etkin" bayrağı ile birlikte synchronize_irq() fonksiyonunu emüle eden kodu ekleyen 7dbd8f4cabd9 ("USB: dummy-hcd: Fix erroneous synchronization change") commit'i ile getirilmiştir (bu kod, mevcut tüm işleyici geri çağırma fonksiyonları dönene kadar bekler). Ancak emüle edilen kesme devre dışı bırakma işlemi çok geç gerçekleşiyordu; yani işleyici geri çağırma rutinlerini içeren sürücüye, bağının koparıldığı (unbound) ve artık daha fazla geri çağırmanın gerçekleşmeyeceği bildirildikten sonra oluyordu. 4a5d797a9f9c ("usb: gadget: dummy_hcd: fix gpf in gadget_setup") commit'i, synchronize_irq() emülasyon kodunu dummy_stop() fonksiyonundan, bağ koparma geri çağrımasından önce çalışan dummy_pullup() fonksiyonuna taşıyarak bunu düzeltmeye çalışmıştır. Buna rağmen, emüle edilen kesme devre dışı bırakma işlemi hâlâ çok geç gerçekleştiği için yarış durumları (race conditions) devam etmekteydi. Bu işlem dummy_pullup() fonksiyonuna taşınamadı çünkü bu rutin, yaklaşan bir bağ koparma işlemi dışındaki nedenlerle de çağrılabilir. Bu nedenle, 7dc0c55e9f30 ("USB: UDC core: Add udc_async_callbacks gadget op") ve 04145a03db9d ("USB: UDC: Implement udc_async_callbacks in dummy-hcd") commit'leri, UDC çekirdeğinin emüle edilen kesmelerin ve bunların geri çağırmalarının tam olarak ne zaman devre dışı bırakılması gerektiğini dummy-hcd'ye bildirmesine olanak tanıyan bir API eklemiştir. Bu bizi, emüle edilen synchronize_irq() işleminin emüle edilen kesme devre dışı bırakma işleminden önce gerçekleşmesi nedeniyle hâlâ hatalı olan mevcut duruma getiriyor. Bu durum uygun değildir çünkü synchronize_irq() emülasyonu çalıştıktan sonra daha fazla emüle kesmenin meydana gelebileceği anlamına gelir ve bu da gadget sürücüsü bağdan koparıldığında bir geri çağırma işleyicisinin çalışıyor olma olasılığına yol açar. Bunu düzeltmek için synchronize_irq() emülasyon kodunu tekrar, emüle edilen kesme isteklerinin etkinleştirilmesi ve devre dışı bırakılmasını yöneten dummy_udc_async_callbacks() rutinine taşımamız gerekmektedir. Senkronizasyon artık olması gereken yerde, yani emüle edilen kesmeler devre dışı bırakıldıktan hemen sonra çalışacaktır.
Nasıl düzeltilir
- linux linux_kernel5.15.203, 6.1.168, 6.6.134, 6.12.81, 6.18.22, 6.19.12 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| linux linux_kernel | 5.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.0 | 5.15.203, 6.1.168, 6.6.134, 6.12.81, 6.18.22, 6.19.12 |
Sürümünüzü kontrol edin
Ürünü seçin ve kullandığınız sürümü yazın; sürümün etkilenen aralıkta olup olmadığını görün.
Attack Surface Management
Alan adlarınıza bağlı varlıkları, bu varlıklarda çalışan teknolojileri ve bilinen zafiyetleri tek listede görün.