CVE-2026-74620
Təsvir
Linux kernel-də aşağıdakı zəiflik aradan qaldırılıb: net/sched: act_gact, act_police: ehtiyat idarəetmə hərəkətinin diapazon yoxlamasını həyata keçirin tcf_action_check_ctrlact() əsas idarəetmə hərəkətini diapazon üzrə yoxlayır: if (!opcode) ret = action > TC_ACT_VALUE_MAX ? -EINVAL : 0; TC_ACT_VALUE_MAX dəyəri TC_ACT_TRAP-dır, buna görə də ondan yuxarı olan kernel daxili qərarlar bu şəkildə təyin edilə bilməz. Lakin act_gact və act_police hər biri istifadəçi sahəsi tərəfindən təmin edilən və həmin köməkçiyə heç vaxt çatmayan ikinci, müstəqil idarəetmə hərəkətinə malikdir - TCA_GACT_PROB.paction və TCA_POLICE_RESULT. Hər ikisi yalnız TC_ACT_GOTO_CHAIN dəyərini rədd edir, digər bütün dəyərlər olduğu kimi saxlanılır və hərəkətdən olduğu kimi qaytarılır. Xüsusilə, istifadəçi sahəsi TC_ACT_VALUE_MAX + 1 olan və qəsdən UAPI dəyər diapazonuna daxil edilməmiş TC_ACT_CONSUMED dəyərini saxlaya bilər. Bu qərar hər bir çağırana bildirir ki, hərəkət skb mülkiyyətini götürüb, buna görə də heç kim onu azad etmir: sch_handle_ingress(), sch_handle_egress() və tcf_qevent_handle() funksiyalarının hamısı qəsdən onun üçün azad etmə prosesini ötürür. Nəticədə, filtrdən keçən hər paket üçün, o cümlədən kernel tərəfindən yaradılmış paketlər daxil olmaqla, zəncirdəki bütün trafik üçün məhdudiyyətsiz şəkildə bir sk_buff və onun məlumat buferi sızır. Hər iki hal sadə şəkildə deterministikdir. act_gact tcfg_pval dəyərini >= 1 şərtinə uyğunlaşdırır, beləliklə pval = 1 olduqda gact_determ() hər paket üçün ehtiyat variantı qaytarır. act_police-da məcburi sürət yoxdur, ona görə də rate = 0 olduqda tcfp_mtu = ~0 qalır və tcf_police_mtu_check() həmişə uğurlu olur. TC_ACT_CONSUMED dəyəri, hər iki goto-chain qoruyucuları yazıldıqdan sonra 720f22fed81b ("net: sched: refactor reinsert action") commit-i ilə əlavə edilmişdir: commit 9469f375ab09 ("net/sched: act_gact: disallow 'goto chain' on fallback control action") və commit c08f5ed5d625 ("net/sched: act_police: disallow 'goto chain' on fallback control action"). Yeni qərar ortaya çıxdıqda heç bir qoruyucu genişləndirilməmişdi. Mövcud diapazon testini tcf_action_check_ctrlact() funksiyasından tcf_action_valid() kimi ayırın və onu hər iki ehtiyat varianta tətbiq edin. Köməkçi funksiya tcf_action_check_ctrlact()-ni birbaşa çağıra bilməz, çünki bu, həmçinin goto_chain ayırır ki, bu da məhz bu iki sahənin etməməli olduğu şeydir. v7.2-rc6 versiyasında təkrarlandı: kmemleak hər paket üçün bir sızmış 232 baytlıq skbuff_head_cache obyekti və onun 704 baytlıq məlumat buferini bildirir. Bu yamama (patch) ilə hər iki konfiqurasiya -EINVAL ilə rədd edilir və kmemleak heç bir sızıntı bildirmir.
Necə düzəltmək olar
- Linux Linux5f038affdacaffedf6a85a06cf59ec0a852d36a7, efa58aeb6a99028b1fbc3ab2f31ba3a881211ad4, 725efc2ab4a40affc4e285a2dc4896d103948a6c, 6bcb8839aa2d686964a4154650afc4db91e1c514, 5344e01179baa37547ab29fd7b8614f83faa190c, 92f00f1d4d204a428b38e26fce3baee144b6955d, 2e8df8c9190335475a3b64a159d3efd8cdd1cb73, 883b56ae58fe657d8497806c7059646e9ba6dbd0 və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| Linux Linux | 720f22fed81bc6fd1765db7014651b6718887bea ≤ v < 5f038affdacaffedf6a85a06cf59ec0a852d36a7, 720f22fed81bc6fd1765db7014651b6718887bea ≤ v < efa58aeb6a99028b1fbc3ab2f31ba3a881211ad4, 720f22fed81bc6fd1765db7014651b6718887bea ≤ v < 725efc2ab4a40affc4e285a2dc4896d103948a6c, 720f22fed81bc6fd1765db7014651b6718887bea ≤ v < 6bcb8839aa2d686964a4154650afc4db91e1c514, 720f22fed81bc6fd1765db7014651b6718887bea ≤ v < 5344e01179baa37547ab29fd7b8614f83faa190c, 720f22fed81bc6fd1765db7014651b6718887bea ≤ v < 92f00f1d4d204a428b38e26fce3baee144b6955d, 720f22fed81bc6fd1765db7014651b6718887bea ≤ v < 2e8df8c9190335475a3b64a159d3efd8cdd1cb73, 720f22fed81bc6fd1765db7014651b6718887bea ≤ v < 883b56ae58fe657d8497806c7059646e9ba6dbd0, 5.3 | 5f038affdacaffedf6a85a06cf59ec0a852d36a7, efa58aeb6a99028b1fbc3ab2f31ba3a881211ad4, 725efc2ab4a40affc4e285a2dc4896d103948a6c, 6bcb8839aa2d686964a4154650afc4db91e1c514, 5344e01179baa37547ab29fd7b8614f83faa190c, 92f00f1d4d204a428b38e26fce3baee144b6955d, 2e8df8c9190335475a3b64a159d3efd8cdd1cb73, 883b56ae58fe657d8497806c7059646e9ba6dbd0 |
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.