CVE-2026-98968
Təsvir
Linux nüvəsində aşağıdakı zəiflik aradan qaldırılıb: amt: relay-in General Query sorğusunu birbaşa qəbul yolundan göndərin qdisc-də növbəyə alınmış skb, skb->cb daxilindəki raw pointer vasitəsilə istinad etdiyi tuneldən daha uzun müddət mövcud ola bilər. Məsələn, relay-də igmp_qrv 1 olaraq təyin edildikdə tunel 135 saniyə yaşayır, lakin amt cihazındakı 180 saniyəlik netem gecikməsi ondan daha çox davam edir; tunelin vaxtı bitib azad edildikdə, növbədən çıxarma əməliyyatı amt_dev_xmit() funksiyasında use-after-free xətasına səbəb olur. BUG: KASAN: slab-use-after-free in amt_dev_xmit+0x2763/0x2e20 Call Trace: amt_dev_xmit+0x2763/0x2e20 [drivers/net/amt.c:1262] dev_hard_start_xmit+0x22f/0x620 sch_direct_xmit+0x12e/0xac0 netem_dequeue+0x333/0xc50 net_tx_action+0x35c/0xa60 amt_send_igmp_gq() və amt_send_mld_gq() yalnız amt_rcv() funksiyasının rcu_read_lock_bh() bölməsi daxilindəki amt_request_handler() tərəfindən çağırılır. amt_request_handler() artıq sorğu üçün lazım olan tunelə malikdir: o, həmin bölmə daxilində tuneli tapıb və ya yaradıb. Sorğunun dev_queue_xmit() ilə növbəyə alınması onu yenidən amt_dev_xmit() funksiyasına yönləndirir ki, bu da Ethernet başlığını silir və həmin tunel üçün amt_send_membership_query() funksiyasını çağırır. Bunun əvəzinə, həmin çağırışı iki göndərici tərəfindən birbaşa yerinə yetirin, eynilə amt_send_advertisement() funksiyasının qəbul yolundan ötürməsi kimi. Beləliklə, sorğu heç vaxt qdisc-də gözləmir, tunel yalnız onu tapan və ya yaradan RCU bölməsi daxilində dereference edilir və skb->cb-də heç nə saxlanılmadığı üçün axtarışa və ya refcount-a ehtiyac qalmır. Artıq istifadə edilməyən amt_dev_xmit()-in sorğu budağı, amt_skb_cb() və struct amt_skb_cb silinsin. Davranış dəyişiklikləri: - Relay-in öz General Query sorğuları artıq amt cihazının çıxış yolu (egress path): onun qdisc-i, tc egress (clsact/tcx), netfilter egress hook və paket kranlarından (packet taps) keçmir. Onlar hələ də alt strukturda UDP kimi görünür. - Uğurla göndərilən sorğu artıq tx_dropped kimi sayılmır. Köhnə sorğu budağı unlock etiketi vasitəsilə çıxırdı və hər bir göndərilmiş sorğunu düşmüş (dropped) kimi sayırdı. - İstifadəçi sahəsi sorğulayıcısı kimi digər mənbələrdən gələrək relay üzərində amt_dev_xmit()-ə çatan sorğu indi IGMP/MLD tip switch-də rədd edilir. Əvvəllər o, skb->cb-nin saxladığına etibar edirdi və NULL tunel WARN_ON(1)-ə səbəb olurdu.
Necə düzəltmək olar
- Linux Linux423a46053788ec4a021d57e69d66db7f7f550da4, 95114e421196250e3d9662f12df442799477d3c3, e7183b7d518ce8b3e1f7284f9881d7a87569df14, 181cb48c1e9af6b402567e132f879f89d1c54131, e7ea63b4195a150604993044ab574d8240f2a399, afae89de73dd693cfa329580ba0fba63bd3f0a11 və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| Linux Linux | cbc21dc1cfe949e37b2a54c71511579f1899e8d4 ≤ v < 423a46053788ec4a021d57e69d66db7f7f550da4, cbc21dc1cfe949e37b2a54c71511579f1899e8d4 ≤ v < 95114e421196250e3d9662f12df442799477d3c3, cbc21dc1cfe949e37b2a54c71511579f1899e8d4 ≤ v < e7183b7d518ce8b3e1f7284f9881d7a87569df14, cbc21dc1cfe949e37b2a54c71511579f1899e8d4 ≤ v < 181cb48c1e9af6b402567e132f879f89d1c54131, cbc21dc1cfe949e37b2a54c71511579f1899e8d4 ≤ v < e7ea63b4195a150604993044ab574d8240f2a399, cbc21dc1cfe949e37b2a54c71511579f1899e8d4 ≤ v < afae89de73dd693cfa329580ba0fba63bd3f0a11, 5.16 | 423a46053788ec4a021d57e69d66db7f7f550da4, 95114e421196250e3d9662f12df442799477d3c3, e7183b7d518ce8b3e1f7284f9881d7a87569df14, 181cb48c1e9af6b402567e132f879f89d1c54131, e7ea63b4195a150604993044ab574d8240f2a399, afae89de73dd693cfa329580ba0fba63bd3f0a11 |
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.