CVE-2022-48838
Açıklama
Linux kernel içerisinde aşağıdaki güvenlik açığı giderilmiştir: usb: gadget: udc->dev.driver değerinin ayarlanmamasıyla serbest bırakıldıktan sonra kullanım (use-after-free) hatası düzeltildi syzbot fuzzer bir serbest bırakıldıktan sonra kullanım hatası tespit etti: BUG: KASAN: use-after-free in dev_uevent+0x712/0x780 drivers/base/core.c:2320 Read of size 8 at addr ffff88802b934098 by task udevd/3689 CPU: 2 PID: 3689 Comm: udevd Not tainted 5.17.0-rc4-syzkaller-00229-g4f12b742eb2b #0 Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.14.0-2 04/01/2014 Call Trace: <TASK> __dump_stack lib/dump_stack.c:88 [inline] dump_stack_lvl+0xcd/0x134 lib/dump_stack.c:106 print_address_description.constprop.0.cold+0x8d/0x303 mm/kasan/report.c:255 __kasan_report mm/kasan/report.c:442 [inline] kasan_report.cold+0x83/0xdf mm/kasan/report.c:459 dev_uevent+0x712/0x780 drivers/base/core.c:2320 uevent_show+0x1b8/0x380 drivers/base/core.c:2391 dev_attr_show+0x4b/0x90 drivers/base/core.c:2094 Hata sürücü çekirdeğinde (driver core) ortaya çıkmış olsa da gerçek neden gadget çekirdeği ile yaşanan bir yarış durumudur (race condition). dev_uevent() şunları yapar: if (dev->driver) add_uevent_var(env, "DRIVER=%s", dev->driver->name); Test ve dev->driver referansının çözümlenmesi arasında, gadget çekirdeği dev->driver değerini NULL olarak ayarlar. Gadget çekirdeği cihazlarını, sürücü çekirdeğinin standart senkronizasyon tekniklerini kullanarak gerçek bir veri yolu üzerinde kaydetseydi bu yarış durumu oluşmazdı. Ancak, bu hatayı düzeltmek için bu kadar büyük bir değişiklik yapmak gerekli değildir; tek yapmamız gereken udc->dev.driver değerinin her zaman NULL olduğundan emin olmaktır. Aslında, udc->dev.driver değerinin herhangi bir şeye, özellikle de şu an aldığı değere (gadget sürücüsünün adresi) ayarlanması için hiçbir neden yoktur. Sonuçta, bir gadget sürücüsü yalnızca bir gadget'ı nasıl yöneteceğini bilir, bir UDC'yi nasıl yöneteceğini değil. Bu yama, gadget çekirdeğindeki udc->dev.driver kısmına dokunan ifadeleri kaldırmaktadır.
Nasıl düzeltilir
- linux linux_kernel4.9.308, 4.14.273, 4.19.236, 5.4.187, 5.10.108, 5.15.31, 5.16.17 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.1 ≤ v < 4.9.308, 4.10 ≤ v < 4.14.273, 4.15 ≤ v < 4.19.236, 4.20 ≤ v < 5.4.187, 5.5 ≤ v < 5.10.108, 5.11 ≤ v < 5.15.31, 5.16 ≤ v < 5.16.17 | 4.9.308, 4.14.273, 4.19.236, 5.4.187, 5.10.108, 5.15.31, 5.16.17 |
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.