CVE-2026-43286
Açıklama
Linux çekirdeğinde aşağıdaki güvenlik açığı giderilmiştir: mm/hugetlb: başarısız olan küresel rezervasyonların alt havuza geri yüklenmesi a833a693a490 numaralı commit ("mm: hugetlb: fix incorrect fallback for subpool"), küresel olarak talep edilen sayfaların yanlışlıkla alt havuzun rezervasyonuna atanmasından kaynaklanan hstate->resv_huge_pages için bir underflow hatasını düzeltmişti. Maalesef bu düzeltme, küresel olarak talep edilen sayfalar elde edilemediğinde spool->used_hpages değerinin yüksek kalmasına neden olan karşıt bir sorunu beraberinde getirmiştir. Bunun nedeni, bir alt havuzun rezerv sayfalarının yalnızca alt havuzdan talep edilen ve tahsis edilenleri hesaba katarken, "used" sayacının hem alt havuzdan hem de küresel olarak tüketilenlerin toplamını takip etmesidir. Bu nedenle, spool->used_hpages değerini diğer yönde ayarlamamız ve küresel olarak talep edilen sayfaların alt havuzun kullanılanlar sayacından düşüldüğünden emin olmamız gerekmektedir. Her başarısız tahsis girişimi, used_hpages sayacını küresel havuzdan kaç sayfa talep edildiyse o kadar artırır. Nihayetinde bu durum, used_hpages maksimum sınıra yaklaştıkça alt havuzu kullanılamaz hale getirir. Sorun şu şekilde yeniden üretilebilir: 1. 4 hugetlb sayfası tahsis edin 2. max=4, min=2 ile bir hugetlb bağlama noktası oluşturun 3. Küresel olarak 2 sayfa tüketin 4. Alt havuzdan 3 sayfa talep edin (2 alt havuzdan + 1 küresel havuzdan) 4.1 hugepage_subpool_get_pages(spool, 3) başarılı olur. used_hpages += 3 4.2 hugetlb_acct_memory(h, 1) başarısız olur: kalan küresel sayfa yok used_hpages -= 2 5. Alt havuz artık herhangi bir hugepage başarıyla tahsis edememiş olmasına rağmen used_hpages = 1 değerine sahiptir. Artık 4 değil, sadece 3 hugepage daha tahsis edebileceğini varsayar. Her başarısız tahsis girişiminin kullanılanlar sayacını artırmasıyla, alt havuz sonunda kullanılanlar sayacının maksimum sayaca eşit olduğu bir noktaya ulaşır. Bu noktada, alt havuzdaki hugeTLB sayfalarının hiçbir kullanıcı tarafından tüketilmemiş olmasına rağmen, alt havuzdan hugeTLB sayfaları tahsis etmeye çalışan tüm gelecek tahsisler başarısız olacaktır. Bu gerçekleştiğinde, gerçekte hiçbir işlem hugeTLB sayfalarını tüketmediği için kullanılanlar sayacını azaltmanın bir yolu yoktur ve dolayısıyla alt havuzu tekrar kullanılabilir hale getirmenin bir yolu kalmaz. Orijinal commit'in düzelttiği underflow sorunu da düzeltilmiş olarak kalmaya devam etmektedir. Bu düzeltme olmadan, hugetlb_acct_memory() başarısız olduğunda used_hpages sızıntısı devam edecektir.
Nasıl düzeltilir
- linux linux_kernel6.15, 6.18.16, 6.19.6 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.14.8 ≤ v < 6.15, 6.15.1 ≤ v < 6.18.16, 6.19 ≤ v < 6.19.6, 6.15, 7.0 | 6.15, 6.18.16, 6.19.6 |
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.