CVE-2023-52855
Açıklama
Linux kernel'de aşağıdaki güvenlik açığı giderilmiştir: usb: dwc2: sürücü eşzamanlılığının neden olduğu olası NULL pointer dereference hatası düzeltildi _dwc2_hcd_urb_enqueue() fonksiyonunda, "hsotg->lock" kilidi tutulmadan "urb->hcpriv = NULL" işlemi yürütülmektedir. _dwc2_hcd_urb_dequeue() fonksiyonunda ise: spin_lock_irqsave(&hsotg->lock, flags); ... if (!urb->hcpriv) { dev_dbg(hsotg->dev, "## urb->hcpriv is NULL ##\n"); goto out; } rc = dwc2_hcd_urb_dequeue(hsotg, urb->hcpriv); // urb->hcpriv kullanımı ... out: spin_unlock_irqrestore(&hsotg->lock, flags); _dwc2_hcd_urb_enqueue() ve _dwc2_hcd_urb_dequeue() eşzamanlı olarak çalıştırıldığında, "urb->hcpriv" değerinin NULL kontrolü, "urb->hcpriv = NULL" işleminden önce gerçekleşebilir. urb->hcpriv NULL olduktan sonra, dwc2_hcd_urb_dequeue() fonksiyon çağrısında kullanılabilir ve bu durum bir NULL pointer dereference hatasına yol açabilir. Bu olası hata, tarafımdan geliştirilen deneysel bir statik analiz aracı tarafından tespit edilmiştir. Bu araç, eşzamanlı olarak çalıştırılabilecek fonksiyon çiftlerini çıkarmak için kilitleme API'lerini analiz etmekte ve ardından veri yarışları ile atomiklik ihlalleri dahil olmak üzere olası eşzamanlılık hatalarını belirlemek için eşleşen fonksiyonlardaki talimatları incelemektedir. Söz konusu olası hata, aracım Linux 6.5 kaynak kodunu analiz ettiğinde raporlanmıştır. Bu olası hatayı gidermek için "urb->hcpriv = NULL" işlemi "hsotg->lock" kilidi tutularak yürütülmelidir. Bu yama uygulandıktan sonra, x86_64 için allyesconfig çekirdek yapılandırmasında aracım bu olası hatayı raporlamamıştır. İlgili donanıma sahip olmadığım için yamayı çalışma zamanı testlerinde deneyemedim ve yalnızca kod mantığına göre doğruladım.
Nasıl düzeltilir
- linux linux_kernel4.14.330, 4.19.299, 5.4.261, 5.10.201, 5.15.139, 6.1.63, 6.5.12, 6.6.2 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 | 4.2 ≤ v < 4.14.330, 4.15 ≤ v < 4.19.299, 4.20 ≤ v < 5.4.261, 5.5 ≤ v < 5.10.201, 5.11 ≤ v < 5.15.139, 5.16 ≤ v < 6.1.63, 6.2 ≤ v < 6.5.12, 6.6 ≤ v < 6.6.2 | 4.14.330, 4.19.299, 5.4.261, 5.10.201, 5.15.139, 6.1.63, 6.5.12, 6.6.2 |
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.