CVE-2022-48941
Açıklama
Linux kernel içerisinde aşağıdaki güvenlik açığı giderilmiştir: ice: VF'lerin eşzamanlı sıfırlanması ve kaldırılması düzeltildi c503e63200c6 ("ice: Stop processing VF messages during teardown") numaralı commit, VF'ler kaldırılırken VF'lerden gelen mesajların eşzamanlı olarak işlenmesiyle ilgili bazı sorunları önlemek amacıyla ICE_VF_DEINIT_IN_PROGRESS adlı bir sürücü durum bayrağı tanıtmıştır. Bu değişiklik, VF'lerin hızlı bir şekilde art arda kaldırılıp yeniden başlatılması sırasında meydana gelen çökmeler nedeniyle yapılmıştır. Ancak bu düzeltmenin, PF'nin artık .remove rutini sırasında VF tarafından gönderilen hiçbir mesaja yanıt vermemesi nedeniyle VF sürücüsünde sorunlara yol açtığı görülmüştür. Bu durum, PF cihaz kuyruklarını kapatmadan önce VF'nin DMA belleğini potansiyel olarak kaldırmasıyla sonuçlanmaktadır. Ek olarak, söz konusu düzeltme aslında ice sürücüsü içindeki eşzamanlılık sorunlarını çözmemektedir. Bir VF'nin, ice sürücüsü VF'leri kaldırmadan hemen önce bir sıfırlama işlemi başlatması mümkündür. Bu durum, VF sıfırlanırken kaldırma görevinin eşzamanlı olarak çalışmasına neden olabilir; bu da bahsi geçen commit ile düzeltildiği iddia edilen bellek bozulmalarına ve panic hatalarına benzer sonuçlar doğurmaktadır. Hem sıfırlama hem de kaldırma akışları mevcut VF cfg_lock kullanılarak korunarak bu eşzamanlılık sorunu kökten çözülmüştür. Bu sayede virtchnl mesajı veya sıfırlama gibi bekleyen kritik görevler gerçekleşirken VF'nin kaldırılmaması sağlanmıştır. Bu kilitleme değişikliği, başlangıçta c503e63200c6 ("ice: Stop processing VF messages during teardown") numaralı commit ile düzeltilmeye çalışılan temel nedeni de giderdiği için, o commit geri alınmıştır. Sadece orijinal commit'in geri alınmasının sürücüyü daha kötü yarış durumlarına (race conditions) açık hale getireceği için bu iki değişiklik birlikte uygulanmıştır.
Nasıl düzeltilir
- linux linux_kernel5.10.104, 5.15.26, 5.16.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 | v < 5.10.104, 5.11 ≤ v < 5.15.26, 5.16 ≤ v < 5.16.12 | 5.10.104, 5.15.26, 5.16.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.