CVE-2021-47272

Orta

Açıklama

Linux çekirdeğinde aşağıdaki güvenlik açığı giderilmiştir: usb: dwc3: gadget: dwc->gadget NULL ise dwc3_gadget_exit() fonksiyonundan çıkılsın dwc3_gadget_init() fonksiyonunun başarısız olabileceği olası bir senaryo mevcuttur: dwc3_set_mode() içerisinde host -> peripheral mod geçişi sırasında ve bekleyen bir gadget sürücüsü bağlanamazsa. Ardından, eğer DRD peripheral->host şeklinde başka bir mod geçişi gerçekleştirirse, sonuçlanan dwc3_gadget_exit() işlemi geçersiz ve sarkan bir dwc->gadget işaretçisine referans vermeye çalışacak ve eşlenmemiş DMA işaretçileri üzerinde dma_free_coherent() fonksiyonunu çağıracaktır. Kesin senaryo şu şekilde yeniden üretilebilir: - DWC3'ü peripheral modunda başlatın - ConfigFS gadget'ını FunctionFS örneği ile yapılandırın (veya g_ffs kullanın) - FunctionFS kullanıcı alanı uygulamasını çalıştırın (EP'leri açın, tanımlayıcıları yazın vb.) - Gadget sürücüsünü DWC3'ün UDC'sine bağlayın - DWC3'ü host moduna geçirin => dwc3_gadget_exit() çağrılır. usb_del_gadget(), ConfigFS sürücü örneğini gadget_driver_pending_list listesine ekler - FunctionFS uygulamasını durdurun (ep dosyalarını kapatır) - DWC3'ü peripheral moduna geçirin => usb_add_gadget() fonksiyonu check_pending_gadget_drivers() fonksiyonunu çağırdığında ve UDC'yi ConfigFS gadget'ına yeniden bağlamaya çalıştığında, FFS örneği FFS_ACTIVE durumunda olmadığı için (kullanıcı alanı henüz tanımlayıcıları yeniden açıp yazmadığı için, yani desc_ready!=0), işlem -19 (-ENODEV) hatasıyla başarısız olur ve böylece dwc3_gadget_init() hata verir. - DWC3'ü tekrar host moduna geçirin => dwc3_gadget_exit() tekrar çağrılır ancak bu sefer dwc->gadget geçersizdir. Kullanıcı alanının, kompozit sürücünün UDC'ye bağlanmasına izin vermeden önce FunctionFS uygulamasının hazır olduğundan emin olma sorumluluğunu üstlenmesi gerektiği savunulabilse de, bunun yapılmaması çekirdek sürücüsünde bir paniğe (panic) yol açmamalıdır. Bu sorun, dwc3_gadget_init() fonksiyonunun hata yolunda dwc->gadget değerinin NULL olarak ayarlanması ve dwc3_gadget_exit() fonksiyonuna, gadget işaretçisi geçerli olmadıkça işlemden çıkılmasını sağlayan bir kontrol eklenerek düzeltilmiştir.

ÖnemOrta
CVSS5.5
İstismar olasılığı—
ÜrünLinux Kernel
Yayın21 May 2024
İlk görülme21 May 2024

Nasıl düzeltilir

Güncelleyin
  • linux linux_kernel5.10.44, 5.12.11 ya da sonraki bir sürüm

Etkilenen ürünler

ÜrünEtkilenen sürümlerDüzeltildiği sürüm
linux linux_kernel5.10 ≤ v < 5.10.44, 5.11 ≤ v < 5.12.11, 5.135.10.44, 5.12.11

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.

Intelligence 360 paketinde

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.

CVE-2021-47272 · Linux Kernel · Dark Radar