CVE-2026-63951
Açıklama
Linux kernel içerisinde aşağıdaki güvenlik açığı giderilmiştir: zram: zram_writeback_endio fonksiyonundaki serbest bırakıldıktan sonra kullanım (use-after-free) hatası düzeltildi wake_up fonksiyonunda meydana gelen bir NULL pointer dereference nedeniyle zram_writeback_endio içerisinde bir çökme gözlemlenmiştir. Temel neden, bio tamamlanma işleyicisi (zram_writeback_endio) ile writeback görevi arasındaki bir yarış durumudur (race condition). zram_writeback_endio içerisinde, wb_ctl->done_lock serbest bırakıldıktan sonra &wb_ctl->done_wait üzerinde wake_up() çağrılır. Bu durum, writeback görevinin num_inflight değerinin 0 olduğunu görmesine, geri dönmesine ve zram_writeback_endio wake_up() fonksiyonunu çağırmadan önce wb_ctl yapısını serbest bırakmasına olanak tanıyan bir yarış penceresi oluşturur. CPU 0 (zram_writeback_endio) CPU 1 (writeback_store) ============================ ============================ zram_writeback_slots zram_submit_wb_request zram_submit_wb_request wait_event(wb_ctl->done_wait) spin_lock(&wb_ctl->done_lock); list_add(&req->entry, &wb_ctl->done_reqs); spin_unlock(&wb_ctl->done_lock); wake_up(&wb_ctl->done_wait); zram_complete_done_reqs spin_lock(&wb_ctl->done_lock); list_add(&req->entry, &wb_ctl->done_reqs); spin_unlock(&wb_ctl->done_lock); while (num_inflight) > 0) spin_lock(&wb_ctl->done_lock); list_del(&req->entry); spin_unlock(&wb_ctl->done_lock); // num_inflight 0 olur atomic_dec(num_inflight); // zram_writeback_slots'tan ayrıl // wb_ctl serbest bırakılır release_wb_ctl(wb_ctl); // UAF çökmesi! wake_up(&wb_ctl->done_wait); Bu yama, RCU kullanarak bu yarış durumunu düzeltir. zram_writeback_endio içerisinde wb_ctl yapısı rcu_read_lock() ile korunarak ve serbest bırakmak için kfree_rcu() kullanılarak, wb_ctl'nin zram_writeback_endio yürütülmesi sırasında geçerli kalması sağlanmıştır.
Nasıl düzeltilir
- linux linux_kernel7.0.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 | 6.19 ≤ v < 7.0.12, 7.1 | 7.0.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.