CVE-2025-38311
Açıklama
Linux kernel içerisinde aşağıdaki güvenlik açığı giderilmiştir: iavf: crit lock kaldırıldı crit lock kaldırıldı. Bu durum bizi hata yapmaya müsait try_locks mantığından kurtarmaktadır. Jakub tarafından sağlanan netdev_lock() sayesinde bu işlem artık kolaylaşmıştır ve çoğu durumda zaten bununla korunuyorduk; böyle olmadığı durumlarda crit lock, netdev lock ile değiştirildi. Lockdep, işin crit_lock altında iptal edilmesi gerektiğini bildirmektedir [splat1] ve bu, Slawomir tarafından yapılan [1] çalışmasından beri çoğunlukla takip ettiğimiz şemaydı. Ancak bu yapıldığında hala kilitlenmelerle (deadlock) karşılaşıyorduk [splat2]. Bu nedenle, daha büyük bir sorun olan iavf'nin "tuhaf kilitleme/zamanlama" konusuna odaklanmalıyız. Bunu düzeltmek için ilk adım crit lock'un kaldırılmasıdır. Zamanlamayı/görevleri basitleştiren bir -next serisi ile devam edeceğim. [splat2]'yi düzeltmek için (crit lock tutulsaydı tamamen çirkin olurdu), işi netdev lock olmadan iptal edin (tuhaf unlock+lock şeması). iavf_watchdog_task()'ın korunan kısmını, daha fazla iş zamanlamasını içerecek şekilde genişletin. iavf_reset_task() içinde kaldırılan yorumun yanlış yerleştirildiği, aslında kaldırılan if koşulunun içinde olması gerektiği ve bu nedenle şimdi silindiği unutulmamalıdır. [splat1] - bu yama olmadan - VF kaldırma sırasında oluşan kilitlenme: WARNING: possible circular locking dependency detected sh/3825 is trying to acquire lock: ((work_completion)(&(&adapter->watchdog_task)->work)){+.+.}-{0:0}, at: start_flush_work+0x1a1/0x470 but task is already holding lock: (&adapter->crit_lock){+.+.}-{4:4}, at: iavf_remove+0xd1/0x690 [iavf] which lock already depends on the new lock. [splat2] - iş crit lock altında iptal edilirken, bu seri olmadan, geçici çözüm girişimi için [2]'ye bakınız WARNING: possible circular locking dependency detected sh/3550 is trying to acquire lock: ((wq_completion)iavf){+.+.}-{0:0}, at: touch_wq_lockdep_map+0x26/0x90 but task is already holding lock: (&dev->lock){+.+.}-{4:4}, at: iavf_remove+0xa6/0x6e0 [iavf] which lock already depends on the new lock. [1] fc2e6b3b132a ("iavf: Rework mutexes for better synchronisation") [2] https://github.com/pkitszel/linux/commit/52dddbfc2bb60294083f5711a158a
Nasıl düzeltilir
- linux linux_kernel6.2, 6.5, 6.15.3 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 | 6.1.42 ≤ v < 6.2, 6.4.7 ≤ v < 6.5, 6.5.1 ≤ v < 6.15.3, 6.5 | 6.2, 6.5, 6.15.3 |
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.