CVE-2026-64418
Açıklama
Linux çekirdeğinde aşağıdaki güvenlik açığı giderilmiştir: mm: shrinker: shrinker_info yıkımı ile genişleme arasındaki yarış durumu düzeltildi expand_shrinker_info(), henüz ->css_online() işlemini tamamlamamış memcg'ler de dahil olmak üzere, shrinker_mutex altında görünür tüm memcg'lerile gezinir. pn->shrinker_info yayınlandıktan sonra, söz konusu memcg ya tamamen çevrimiçi olana kadar ya da artık gezinti için görünür olmayana kadar, yıkım işlemi expand_shrinker_info() ile serileştirilmiş kalmalıdır. Günümüzde alloc_shrinker_info(), kısmen başlatılmış bir shrinker_info dizisini serbest bırakmadan önce shrinker_mutex kilidini kaldırarak bu kuralı ihlal etmekte ve şu yarış durumuna neden olabilmektedir: CPU0 CPU1 ==== ==== css_create --> list_add_tail_rcu(&css->sibling, &parent_css->children); online_css --> mem_cgroup_css_online --> alloc_shrinker_info --> alloc node0 info rcu_assign_pointer(C->node0->shrinker_info, old0) alloc node1 info -> HATA -> goto err mutex_unlock(shrinker_mutex) shrinker_alloc() --> shrinker_memcg_alloc --> mutex_lock(shrinker_mutex) expand_shrinker_info --> mem_cgroup_iter memcg'yi görür expand_one_shrinker_info --> old0 = C->node0->shrinker_info memcpy(new->unit, old0->unit, ...); free_shrinker_info --> kvfree(old0); /* double free !! */ kvfree_rcu(old0, rcu); Aynı sorun daha sonra mem_cgroup_css_online() içerisinde de meydana gelmektedir. Eğer alloc_shrinker_info() başarılı olur ancak ardından gelen bir objcg tahsisi başarısız olursa, free_objcg -> free_shrinker_info() geri alma yolu, halihazırda yayınlanmış olan pn->shrinker_info dizilerini shrinker_mutex olmadan yıkar. expand_one_shrinker_info() aynı şekilde bu yıkım işlemiyle yarışabilir ve eski shrinker_info'nun serbest bırakıldıktan sonra kullanımı (use-after-free) veya çift serbest bırakılmasına (double-free) yol açabilir. Bu durum, shrinker_info yıkımı shrinker_mutex ile serileştirilerek ve alloc_shrinker_info() hata temizliği kilitli bölüm içinde tutularak düzeltilmiştir.
Nasıl düzeltilir
- linux linux_kernel6.12.96, 6.18.39, 7.1.4 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.7 ≤ v < 6.12.96, 6.13 ≤ v < 6.18.39, 6.19 ≤ v < 7.1.4, 7.2 | 6.12.96, 6.18.39, 7.1.4 |
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.