CVE-2025-68807
Açıklama
Linux kernel içerisinde aşağıdaki güvenlik açığı giderilmiştir: block: wbt_enable_default ve IO gönderimi arasındaki yarış durumu düzeltildi wbt_enable_default() fonksiyonu elevator_change() içerisindeki kuyruk dondurma işleminin dışına taşındığında, wbt inflight sayacının negatif (-1) olmasına neden olabilir ve bu durum writeback yolunda asılı kalan görevlere (hung tasks) yol açar. Sayacın tutarsız bir durumda olması nedeniyle görevler wbt_wait() aşamasında takılır. Sorun, wbt_enable_default()'ın IO gönderimi ile yarışabilmesi ve uygun başlatma işlemi gerçekleşmeden önce sayacın azaltılmasına izin vermesi nedeniyle oluşur. Bu durum şu şekilde ortaya çıkar: rq_wait[0]: inflight: -1 has_waiters: True rwb_enabled() durumu kontrol eder; bu durum tam olarak wbt_wait() (rq_qos_throttle()) ve wbt_track() (rq_qos_track()) arasında güncellenebilir, ardından inflight sayacı negatif hale gelir. Bu da şu şekilde asılı görev uyarılarıyla sonuçlanır: task:kworker/u24:39 state:D stack:0 pid:14767 Call Trace: rq_qos_wait+0xb4/0x150 wbt_wait+0xa9/0x100 __rq_qos_throttle+0x24/0x40 blk_mq_submit_bio+0x672/0x7b0 ... Bu sorun şu adımlarla düzeltilmiştir: 1. wbt_enable_default() şuna bölünmüştür: - __wbt_enable_default(): wbt_init() çağrılması gerekiyorsa true döner - wbt_enable_default(): Mevcut çağırıcılar için sarmalayıcı (başlatma yapmaz) - wbt_init_enable_default(): WBT'yi kontrol eden ve başlatan yeni fonksiyon 2. Kuyruk kaydı sırasında uygun başlatmayı sağlamak için blk_register_queue() içerisinde wbt_init_enable_default() kullanılmıştır. 3. wbt_init(), yalnızca bfq ve iocost üzerinden devre dışı bırakılmış wbt'yi etkinleştirmek için kullanılan ve wbt_init()'e ihtiyaç duymayan wbt_enable_default() dışına taşınmıştır. Böylece orijinal kilit uyarısından kaçınılabilir. 4. Artık ihtiyaç duyulmadığı için ELEVATOR_FLAG_ENABLE_WBT_ON_EXIT bayrağı ve bununla ilgili işleme kodu kaldırılmıştır. Bu işlemler, herhangi bir IO gönderilmeden önce WBT'nin uygun şekilde başlatılmasını sağlayarak sayacın negatife düşmesini önler.
Nasıl düzeltilir
- Linux Linuxf55201fb3becff6a903fd29f4d1147cc7e91eb0c, 9869d3a6fed381f3b98404e26e1afc75d680cbf9 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| Linux Linux | 78c271344b6f64ce24c845e54903e09928cf2061 ≤ v < f55201fb3becff6a903fd29f4d1147cc7e91eb0c, 78c271344b6f64ce24c845e54903e09928cf2061 ≤ v < 9869d3a6fed381f3b98404e26e1afc75d680cbf9, 6.16 | f55201fb3becff6a903fd29f4d1147cc7e91eb0c, 9869d3a6fed381f3b98404e26e1afc75d680cbf9 |
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.