CVE-2026-98550
Təsvir
Linux kernel-də aşağıdakı zəiflik aradan qaldırılıb: tipc: bc_ackers underflow-nun qarşısını almaq üçün etibarsız və gözlənilməz GRP_ACK_MSG rədd edilir Commit 48a5fe38772b ("tipc: fix bc_ackers underflow on duplicate GRP_ACK_MSG"), less_eq(acked, m->bc_acked) şərti ödənildikdə erkən geri dönərək tipc_group_proto_rcv() funksiyasında dublikat/köhnəlmiş ACK-ları rədd edirdi. Lakin həmin yoxlama iki istiqamətdə natamam qalmışdı: 1. grp->bc_ackers sıfır olduqda (məsələn, sakit qrupda, replicast ACK-lar tələb edilmədikdə və ya bütün gözlənilən üzvlər artıq təsdiqləməni tamamladıqdan sonra), acked > m->bc_acked olan gözlənilməz bir GRP_ACK_MSG less_eq() yoxlamasından keçir və şərtsiz olaraq grp->bc_ackers dəyərini azaldır. bc_ackers u16 növündə olduğu üçün bu, dəyərin 65535-ə çevrilməsinə (wrap) səbəb olur ki, bu da tipc_group_bc_cong() funksiyasının daim tıxac (congestion) bildirməsinə və soketdə gələcək bütün qrup yayımlarının bloklanmasına gətirib çıxarır. 2. Aktiv yayım raundu zamanı (grp->bc_ackers > 0), göndərən tərəf S paketini ötürür və grp->bc_snd_nxt dəyərini S + 1-ə artırır. Qəbul edənlər S paketini emal etdikdən sonra öz gözlənilən sayğaclarını S + 1-ə artırırlar, buna görə də cari raund üçün yeganə etibarlı ACK dəyəri dəqiqliklə acked == grp->bc_snd_nxt olmalıdır. Lakin tipc_group_update_bc_members() hər bir üzvün m->bc_acked dəyərini prev = grp->bc_snd_nxt - 1 (artırımdan əvvəl S - 1) kimi başladır. Bu, ardıcıllıq məkanında 2-ardıcıllıq boşluğu (S - 1-dən S + 1-ə qədər) yaradır. Buna görə də, gözlənilməz və ya köhnəlmiş bir dəyər (məsələn, S) alındıqda, daxil olan ACK nə dublikat kimi rədd edilir, nə də grp->bc_ackers-in azalmasının qarşısı alınır. acked = S və ardından acked = S + 1 göndərən bir üzv eyni raundda grp->bc_ackers dəyərini iki dəfə azalda bilər ki, bu da bc_ackers-in vaxtından əvvəl sıfırlanmasına və ya underflow-ya səbəb olar. Bu problem aşağıdakılarla düzəldilir: - grp->bc_ackers sıfır olduqda GRP_ACK_MSG dərhal atılır. - acked == grp->bc_snd_nxt şərti tələb olunur və m->bc_acked == acked olduğu hallarda dublikatlar rədd edilir. Replicast yayım raundları ciddi şəkildə ardıcıl olduğu üçün yalnız grp->bc_snd_nxt təsdiqlənə bilər və hər bir üzv raund başına maksimum bir dəfə təsdiqləmə edə bilər. Qeyd edək ki, tipc_group_delete_member() funksiyasındakı əlaqəli mövcud problem (üzv ayrıldıqda grp->bc_ackers-in sıfıra düşməsi *grp->open-i bərpa etmir və ya soketin oyandırılmasını tetikləmir) ayrıca bir yamada (patch) həll ediləcəkdir.
Necə düzəltmək olar
Mənbələrdə bu zəiflik üçün düzəldilmiş versiya və ya yamaq keçidi yoxdur.
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| microsoft azl3_kernel_6.6.157.1-1 | Aralıq göstərilməyib | — |
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.