CVE-2026-43327
Açıklama
Linux kernel içerisinde aşağıdaki güvenlik açığı giderilmiştir: USB: dummy-hcd: Kilitleme/senkronizasyon hatası düzeltildi Syzbot testleri, drivers/usb/gadgets/udc/core.c dosyasındaki usb_gadget_udc_reset() rutininin ikinci ("driver") argümanının NULL olarak çağrılması nedeniyle bir adresleme istisnasına ve çökmeye yol açabilmiştir. Hatalı çağrı dummy_hcd.c içerisindeki set_link_state() fonksiyonundan kaynaklanmış olup sorun, bir USB sıfırlaması ile sürücü ayırmanın (unbind) arasındaki yarış durumundan (race condition) ortaya çıkmıştır. Bu tür yarış durumlarının mümkün olmaması gerekiyordu; 7dbd8f4cabd9 ("USB: dummy-hcd: Fix erroneous synchronization change") numaralı commit ve ardından gelen birkaç commit, özellikle bunları önlemek için yazılmıştı. Ancak kodda (en az) iki hata kaldığı görülmüştür. Başka bir yama ikinci hatayı giderecektir; bu yama ise birincisiyle ilgilidir. syzbot çökmesine neden olan hata, stop_activity() rutininin bazen dum->lock spinlock kilidini bırakıp ardından tekrar edinmesinden kaynaklanmıştır. Emüle edilmiş bir USB sıfırlaması işlenirken set_link_state() içinde, dum->ints_enabled kontrolünden sonra ve dum->callback_usage artırımından önce stop_activity() çağrısı gerçekleşir. Bu durum, başka bir iş parçacığının (sürücü ayırma işlemi yapan) araya girip spinlock kilidini almasına ve ardından dum->ints_enabled ile dum->driver değerlerini temizlemesine izin vermiştir. Normalde bu diğer iş parçacığının, dum->driver değerini temizlemeden önce dum->callback_usage değerinin 0'a düşmesini beklemesi gerekirdi ancak bu durumda dum->callback_usage henüz artırılmadığı için beklemesine gerek kalmamıştır. Çözüm, dum->callback_usage değerini stop_activity() çağrısından sonra değil, öncesinde artırmaktır. Böylece ayırma işlemini gerçekleştiren iş parçacığı, usb_gadget_udc_reset() çağrısı güvenli bir şekilde geri dönene ve dum->callback_usage tekrar azaltılana kadar dum->driver değerini temizlemeyecektir.
Nasıl düzeltilir
- linux linux_kernel3.3, 3.17, 4.2, 4.5, 4.10, 5.10.253, 5.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 | 3.2.97 ≤ v < 3.3, 3.16.52 ≤ v < 3.17, 4.1.46 ≤ v < 4.2, 4.4.92 ≤ v < 4.5, 4.9.55 ≤ v < 4.10, 4.14 ≤ v < 5.10.253, 5.11 ≤ 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 | 3.3, 3.17, 4.2, 4.5, 4.10, 5.10.253, 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.