CVE-2026-64418
Təsvir
Linux nüvəsində aşağıdakı zəiflik aradan qaldırılmışdır: mm: shrinker: shrinker_info sökülməsi ilə genişlənmə arasındakı yarış vəziyyətinin düzəldilməsi expand_shrinker_info() funksiyası shrinker_mutex altında bütün görünən memcg-lər üzrə dövr edir, bura hələ ->css_online() prosesini tamamlamamış memcg-lər də daxildir. pn->shrinker_info yayımlandıqdan sonra, həmin memcg ya tam onlayn olana qədər, ya da iterasiya üçün görünməz olana qədər sökülmə prosesi expand_shrinker_info() ilə seriyallaşdırılmalıdır. Hazırda alloc_shrinker_info() funksiyası hissəvi ilkin sazlanmış shrinker_info massivini azad etməzdən əvvəl shrinker_mutex kilidini açaraq bu qaydanı pozur ki, bu da aşağıdakı yarış vəziyyətinə səbəb ola bilər: 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 -> FAIL -> goto err mutex_unlock(shrinker_mutex) shrinker_alloc() --> shrinker_memcg_alloc --> mutex_lock(shrinker_mutex) expand_shrinker_info --> mem_cgroup_iter memcg-ni 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); Eyni problem daha sonra mem_cgroup_css_online() funksiyasında da mövcuddur. Əgər alloc_shrinker_info() uğurlu olsa, lakin növbəti objcg ayırması uğursuz olsa, free_objcg -> free_shrinker_info() geri qaytarma yolu artıq yayımlanmış pn->shrinker_info massivlərini shrinker_mutex olmadan sökür. expand_one_shrinker_info() eyni şəkildə həmin sökülmə ilə yarışa girə bilər ki, bu da köhnə shrinker_info-nun use-after-free və ya double-free xətasına səbəb olar. Bu problem shrinker_info sökülməsini shrinker_mutex ilə seriyallaşdırmaqla və alloc_shrinker_info() xəta təmizləməsini kilidli bölmənin daxilində saxlamaqla düzəldilmişdir.
Necə düzəltmək olar
- linux linux_kernel6.12.96, 6.18.39, 7.1.4 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.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 |
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.