CVE-2026-98225
Açıklama
Linux kernel'da aşağıdaki güvenlik açığı giderilmiştir: mm/shrinker: cgroup.memory=nokmem ile hatalı set_shrinker_bit() düzeltildi cgroup.memory=nokmem kullanıldığında, shrinker_memcg_alloc() işlemi erken sonlanır ve hiçbir zaman bir kimlik (id) ayırmaz; bu nedenle shrinker->id, shrinker_alloc() içindeki kzalloc()'dan aldığı 0 değerini korur. Ardından __list_lru_init(), bu 0 değerini geçerli bir bit indeksi gibi görünen lru->shrinker_id kısmına kopyalar. nokmem durumunda expand_shrinker_info() fonksiyonunu çağıran herhangi bir işlem yoktur, bu nedenle shrinker_nr_max değeri 0 olarak kalır ve her memcg boş bir haritayla (map_nr_max == 0) sonuçlanır. deferred_split_folio(), lru'nun memcg farkındalığına sahip olup olmadığına bakılmaksızın __list_lru_add() fonksiyonuna gerçek bir memcg iletir; böylece bir cgroup içinde kuyruğa alınan ilk THP, set_shrinker_bit(memcg, nid, 0) işlemini gerçekleştirir ve sınır kontrolünü tetikler: WARNING: mm/shrinker.c:212 at set_shrinker_bit+0x7d/0x90, CPU#126 Call Trace: <TASK> deferred_split_folio+0x18c/0x220 map_anon_folio_pmd_nopf+0xdd/0x130 map_anon_folio_pmd_pf+0x14/0xb0 do_huge_pmd_anonymous_page+0x1a1/0x620 __handle_mm_fault+0xea9/0x10d0 handle_mm_fault+0xe5/0x320 do_user_addr_fault+0x1cc/0x870 exc_page_fault+0x81/0x1b0 asm_exc_page_fault+0x27/0x30 </TASK> Zararsızdır, WARN_ON_ONCE() sınırlar dışındaki unit[] okumasının gerçekleşmesini engelleyen unsurdur ancak kimliğin (id) başlangıçta geçerli görünmemesi gerekir. Dönmeden önce temizleyin. Diğer iki nokta bu durumu geçici olarak çözebilir: nokmem özelliği memcg_aware özelliğini kapattığında __list_lru_init() içindeki kimliği düşürmek veya deferred_split_folio() fonksiyonunun list_lru_add_obj() fonksiyonunun yaptığı gibi NULL iletmesini sağlamak. Her iki yöntem de shrinker->id değerinin bir sonraki çağrıcı için orada kalmasına neden olur, bu yüzden sorun kimliğin dağıtıldığı yerde düzeltilmelidir.
Nasıl düzeltilir
- Linux Linux469c12a69ab1842a9090b6c074ffedbfd9584f9c, 932cfb25e7ce98d1f93895671ec186a3087e4f80 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| Linux Linux | fafaeceb89a5e2e856ff04c2cacb6cae4a2ecb67 ≤ v < 469c12a69ab1842a9090b6c074ffedbfd9584f9c, fafaeceb89a5e2e856ff04c2cacb6cae4a2ecb67 ≤ v < 932cfb25e7ce98d1f93895671ec186a3087e4f80, 7.2 | 469c12a69ab1842a9090b6c074ffedbfd9584f9c, 932cfb25e7ce98d1f93895671ec186a3087e4f80 |
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.