CVE-2026-43286
Təsvir
Linux nüvəsində aşağıdakı zəiflik aradan qaldırılmışdır: mm/hugetlb: uğursuz qlobal rezervasiyaların alt-hovuza (subpool) qaytarılması a833a693a490 nömrəli commit ("mm: hugetlb: fix incorrect fallback for subpool"), qlobal şəkildə tələb olunan səhifələrin yanlış şəkildə alt-hovuzun rezervasiyasına aid edilməsi səbəbindən yaranan hstate->resv_huge_pages üçün underflow xətasını düzəltmişdi. Təəssüf ki, bu düzəliş eyni zamanda əks problemi də ortaya çıxarmışdır: qlobal şəkildə tələb olunan səhifələr əldə edilə bilmədikdə, spool->used_hpages göstəricisi yüksək səviyyədə qalırdı. Bunun səbəbi odur ki, alt-hovuzun rezerv səhifələri yalnız alt-hovuzdan tələb və ayrılanları uçota alsa da, onun "istifadə olunan" (used) sayğacı həm alt-hovuzdan, həm də qlobal şəkildə istifadə olunanların cəmini izləyir. Buna görə də, biz spool->used_hpages göstəricisini digər istiqamətdə tənzimləməli və qlobal şəkildə tələb olunan səhifələrin alt-hovuzun istifadə sayğacından çıxıldığından əmin olmalıyıq. Hər bir uğursuz ayırma cəhdi, qlobal hovuzdan neçə səhifə tələb edildiyi qədər used_hpages sayğacını artırır. Nəticə etibarilə, used_hpages maksimum limitə yaxınlaşdıqca, alt-hovuz istifadəsiz hala gəlir. Problem aşağıdakı kimi təkrar yaradıla bilər: 1. 4 hugetlb səhifəsi ayırın 2. max=4, min=2 parametrləri ilə hugetlb mount yaradın 3. Qlobal olaraq 2 səhifə istifadə edin 4. Alt-hovuzdan 3 səhifə tələb edin (2 alt-hovuzdan + 1 qlobaldan) 4.1 hugepage_subpool_get_pages(spool, 3) uğurlu olur. used_hpages += 3 4.2 hugetlb_acct_memory(h, 1) uğursuz olur: qlobal səhifə qalmayıb used_hpages -= 2 5. Heç bir hugepage-i uğurla ayıra bilməməsinə baxmayaraq, alt-hovuzda indi used_hpages = 1 olur. O, artıq 4 yox, yalnız daha 3 hugepage ayıra biləcəyini hesab edir. Hər bir uğursuz ayırma cəhdi istifadə sayğacını artırdığı üçün, alt-hovuz sonda istifadə sayğacının maksimum sayğaca bərabər olduğu nöqtəyə çatır. Həmin məqamda, heç bir istifadəçi tərəfindən alt-hovuzun hugeTLB səhifələri istifadə edilməməsinə baxmayaraq, alt-hovuzdan hugeTLB səhifələri ayırmaqya çalışan bütün gələcək cəhdlər uğursuz olacaqdır. Bu baş verdikdən sonra, alt-hovuzu yenidən istifadəyə yararlı etməyin yolu yoxdur, çünki heç bir proses həqiqətən hugeTLB səhifələrini istifadə etmədiyi üçün istifadə sayğacını azaltmağın yolu yoxdur. Orijinal commit-in düzəltdiyi underflow problemi də düzəldilmiş halda qalır. Bu düzəliş olmadan, hugetlb_acct_memory() uğursuz olduqda used_hpages sızmağa davam edərdi.
Necə düzəltmək olar
- linux linux_kernel6.15, 6.18.16, 6.19.6 və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| 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 |
Versiyanızı yoxlayın
Məhsulu seçin və istifadə etdiyiniz versiyanı yazın; versiyanın təsirlənən aralıqda olub-olmadığını görün.
Attack Surface Management
Domenlərinizə bağlı aktivləri, onlarda işləyən texnologiyaları və məlum zəiflikləri bir siyahıda görün.