CVE-2026-46099

Yüksək

Təsvir

Linux nüvəsində aşağıdakı zəiflik aradan qaldırılmışdır: net: ipv6: seg6 və rpl lwtunnels-də NOREF dst istifadəsi düzəldildi seg6_input_core() və rpl_input() funksiyaları ip6_route_input()-u çağırır, bu isə skb üzərində NOREF dst təyin edir, daha sonra onu şərtsiz olaraq dst_hold()-u çağıran dst_cache_set_ip6()-ya ötürür. PREEMPT_RT rejimində ksoftirqd preemtible-dır və daha yüksək prioritetli tapşırıq, ortaq nexthop üzərindən eyni vaxtda baş verən FIB axtarışı vasitəsilə axtarış və keşləmə arasında əsas pcpu_rt-ni azad edə bilər. Sadeləşdirilmiş yarış ardıcıllığı: ksoftirqd/X yüksək prioritetli tapşırıq (eyni CPU X) ----------- -------------------------------- seg6_input_core(,skb)/rpl_input(skb) dst_cache_get() -> miss ip6_route_input(skb) -> ip6_pol_route(,skb,flags) [flags daxilində RT6_LOOKUP_F_DST_NOREF] -> FIB axtarışı fib6_nh-ni müəyyən edir [nhid=N marşrutu] -> rt6_make_pcpu_route() [pcpu_rt yaradır, refcount=1] pcpu_rt->sernum = fib6_sernum [fib6_sernum=W] -> cmpxchg(fib6_nh.rt6i_pcpu, NULL, pcpu_rt) [slot boş idi, yaddaşa yazma uğurludur] -> skb_dst_set_noref(skb, dst) [dst pcpu_rt-dir, refcount hələ də 1-dir] rt_genid_bump_ipv6() -> fib6_sernum-u artırır [fib6_sernum W-dən Z-yə] ip6_route_output() -> ip6_pol_route() -> FIB axtarışı fib6_nh-ni müəyyən edir [nhid=N] -> rt6_get_pcpu_route() pcpu_rt->sernum != fib6_sernum [W <> Z, köhnəlmiş] -> prev = xchg(rt6i_pcpu, NULL) -> dst_release(prev) [prev pcpu_rt-dir, refcount 1->0, ölü] dst = skb_dst(skb) [dst ölü pcpu_rt-dir] dst_cache_set_ip6(dst) -> ölü dst üzərində dst_hold() -> WARN / use-after-free Yarışın baş verməsi üçün ksoftirqd preemtible olmalı (PREEMPT_RT_NEEDS_BH_LOCK olmadan PREEMPT_RT) və eyni vaxtda işləyən digər bir tapşırıq pcpu_rt-ni azad edə bilməlidir. Ortaq nexthop obyektləri belə bir yol təmin edir, çünki eyni nhid-yə yönəlmiş iki marşrut eyni fib6_nh və onun rt6i_pcpu qeydini paylaşır. Keşləmədən əvvəl NOREF dst-ni məcburi şəkildə refcounted-a çevirmək üçün ip6_route_input()-dan sonra skb_dst_force() çağırılaraq seg6_input_core() və rpl_input() funksiyaları düzəldildi. Çıxış yolu buna təsir etmir, çünki ip6_route_output() artıq refcounted dst qaytarır.

CiddilikYüksək
CVSS8.1
İstismar ehtimalı—
MəhsulLinux Kernel
Dərc27 may 2026
İlk görülmə27 may 2026

Necə düzəltmək olar

Təsirlənən məhsullar

MəhsulTəsirlənən versiyalarDüzəldildiyi versiya
linux linux_kernel4.12 ≤ v < 5.15.209, 5.16 ≤ v < 6.1.175, 6.2 ≤ v < 6.6.140, 6.7 ≤ v < 6.12.86, 6.13 ≤ v < 6.18.27, 6.19 ≤ v < 7.0.4, 7.15.15.209, 6.1.175, 6.6.140, 6.12.86, 6.18.27, 7.0.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.

Intelligence 360 paketində

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.

CVE-2026-46099 · Linux Kernel · Dark Radar