CVE-2026-46099

Yüksek

Açıklama

Linux çekirdeğinde aşağıdaki güvenlik açığı giderilmiştir: net: ipv6: seg6 ve rpl lwtunnels içindeki NOREF dst kullanımı düzeltildi seg6_input_core() ve rpl_input(), skb üzerinde bir NOREF dst ayarlayan ip6_route_input() fonksiyonunu çağırır ve ardından bunu koşulsuz olarak dst_hold() işlemini başlatan dst_cache_set_ip6() fonksiyonuna iletir. PREEMPT_RT üzerinde ksoftirqd kesilebilir durumdadır ve daha yüksek öncelikli bir görev, paylaşılan bir nexthop üzerinden eşzamanlı bir FIB araması yaparak, arama ve önbelleğe alma işlemleri arasında temel pcpu_rt'yi serbest bırakabilir. Basitleştirilmiş yarış durumu dizisi: ksoftirqd/X yüksek öncelikli görev (aynı CPU X) ----------- -------------------------------- seg6_input_core(,skb)/rpl_input(skb) dst_cache_get() -> ıskalama (miss) ip6_route_input(skb) -> ip6_pol_route(,skb,flags) [flag'lerde RT6_LOOKUP_F_DST_NOREF var] -> FIB araması fib6_nh sonucunu döndürür [nhid=N rotası] -> rt6_make_pcpu_route() [pcpu_rt oluşturur, refcount=1] pcpu_rt->sernum = fib6_sernum [fib6_sernum=W] -> cmpxchg(fib6_nh.rt6i_pcpu, NULL, pcpu_rt) [yuva boştu, depolama başarılı] -> skb_dst_set_noref(skb, dst) [dst, pcpu_rt'dir, refcount hala 1] rt_genid_bump_ipv6() -> fib6_sernum değerini artırır [fib6_sernum W'den Z'ye] ip6_route_output() -> ip6_pol_route() -> FIB araması fib6_nh sonucunu döndürür [nhid=N] -> rt6_get_pcpu_route() pcpu_rt->sernum != fib6_sernum [W <> Z, bayat] -> 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 üzerinde dst_hold() -> WARN / serbest bırakıldıktan sonra kullanım (use-after-free) Yarış durumunun oluşması için ksoftirqd'nin kesilebilir olması (PREEMPT_RT_NEEDS_BH_LOCK olmadan PREEMPT_RT) ve eşzamanlı bir görevin pcpu_rt'yi serbest bırakabilmesi gerekir. Aynı nhid'ye işaret eden iki rota aynı fib6_nh ve onun rt6i_pcpu girdisini paylaştığından, paylaşılan nexthop nesneleri böyle bir yol sağlar. Önbelleğe almadan önce NOREF dst'yi referans sayımlı bir dst'ye zorlamak için ip6_route_input() sonrası skb_dst_force() çağrılarak seg6_input_core() ve rpl_input() düzeltilmiştir. ip6_route_output() zaten referans sayımlı bir dst döndürdüğü için çıkış yolu etkilenmemektedir.

ÖnemYüksek
CVSS8.1
İstismar olasılığı—
ÜrünLinux Kernel
Yayın27 May 2026
İlk görülme27 May 2026

Nasıl düzeltilir

Etkilenen ürünler

ÜrünEtkilenen sürümlerDüzeltildiği sürüm
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

Sürümünüzü kontrol edin

Ürünü seçin ve kullandığınız sürümü yazın; sürümün etkilenen aralıkta olup olmadığını görün.

Intelligence 360 paketinde

Attack Surface Management

Alan adlarınıza bağlı varlıkları, bu varlıklarda çalışan teknolojileri ve bilinen zafiyetleri tek listede görün.

CVE-2026-46099 · Linux Kernel · Dark Radar