CVE-2026-98954

Orta

Təsvir

Linux kernel-də aşağıdakı zəiflik aradan qaldırılmışdır: net: __virtio_net_hdr_to_skb() funksiyasında GSO paketləri həmişə analiz edilsin 9e8db5913264 nömrəli commit ("net: avoid false positives in untrusted gso validation"), bəzi çağırıcılar (məsələn, tun_get_user(), tun_xdp_one(), virtnet_receive_done() və raw_verify_header()) skb->network_header və skb->dev dəyişənlərini başlatmazdan əvvəl virtio_net_hdr_*_to_skb() funksiyasını çağırdığı üçün, __virtio_net_hdr_to_skb() daxilində VIRTIO_NET_HDR_F_NEEDS_CSUM olmayan GSO paketlərinin axın analizi (flow-dissection) önünə '&& skb->network_header' yoxlamasını əlavə etmişdir. __alloc_skb() və __build_skb_around() funksiyaları skb->network_header dəyişənini 0 ilə başladır (~0U ilə başladılan mac_header və transport_header-dən fərqli olaraq), buna görə də həmin dörd çağırıcıda skb->network_header hər zaman 0 olmuş və __virtio_net_hdr_to_skb() funksiyasındakı axın analizindən yan keçilmişdir. Daha ümumi şəkildə, skb->network_header bir boolean bayrağı deyil, skb->head-dən olan ofsetdir (skb_headroom(skb) 0 olduqda 0 da etibarlı ofset sayılır). 'if (gso_type && skb->network_header)' budağı ötürüləndə, ehtiyat variant olan 'else if (gso_type)' paketi analiz etmədən, ip_proto və ya n_proto-nu təsdiqləmədən və skb->transport_header-i təyin etmədən yalnız nh_min_len + thlen (TCPv4 üçün 40 bayt) hissəsini çəkirdi. Əgər paketin şəbəkə başlığı (network header) yanlış formatlıdırsa, o rədd edilmir və növbəti skb_probe_transport_header() çağırışı da uğursuz olur ki, bu da skb->transport_header-in ~0U (0xffff) olaraq qalmasına səbəb olur. Eynilə, əgər IPv4 paketi IP seçimləri (ihl > 5) və ya IPv6 paketi genişləndirmə başlıqları (extension headers) daşıyırsa, yalnız nh_min_len + thlen hissəsinin çəkilməsi TCP başlığının skb->head-dən kənarda qalmasına səbəb ola bilər. Hər iki halda, skb_gso_transport_seglen() funksiyasındakı tcp_hdrlen(skb) sərhədlərdən kənar oxuma (out-of-bounds read) həyata keçirir: BUG: KASAN: slab-out-of-bounds in skb_gso_transport_seglen Read of size 2 by task poc/133 skb_gso_transport_seglen (net/core/gso.c:155) skb_gso_validate_mac_len (net/core/gso.c:270) tbf_enqueue (net/sched/sch_tbf.c:260) dev_qdisc_enqueue (net/core/dev.c:4227) __dev_queue_xmit (net/core/dev.c:4884) Bundan əlavə, virtio_net_hdr_match_proto() yoxlamasının axın analizindən əvvəl yalnız 'if (!skb->protocol)' daxilində aparılması, skb->protocol çağırıcı tərəfindən əvvəlcədən təyin edildikdə təsdiqləmənin ötürülməsinə və xarici L2 protokolu ETH_P_8021Q və ya ETH_P_8021AD olan VLAN teqlərinə malik freymlərin rədd edilməsinə səbəb olurdu. Bu problem aşağıdakılarla düzəldilir: 1. tun_get_user(), tun_xdp_one(), virtnet_receive_done() və raw_verify_header() funksiyalarında virtio_net_hdr_*_to_skb() çağırılmadan əvvəl skb->dev və skb->network_header (həmçinin IFF_TUN üçün skb->protocol) başladılır. tun_get_user() funksiyasında, IFF_TUN halında artıq olan skb_reset_mac_header(skb) silinir, çünki __virtio_net_hdr_to_skb() mac_header-i şərtsiz olaraq sıfırlayır. 2. __virtio_net_hdr_to_skb() funksiyasından '&& skb->network_header' və təsdiqlənməmiş 'else if (gso_type)' ehtiyat variantı çıxarılır, beləliklə VIRTIO_NET_HDR_F_NEEDS_CSUM olmayan bütün GSO paketləri axın analizindən keçirilir, onların transport başlığı xətti məlumatlara (linear data) daxil edilir və skb->transport_header təyin olunur. 3. virtio_net_hdr_match_proto() yoxlaması skb_flow_dissect_flow_keys_basic() funksiyasından sonraya köçürülür və keys.basic.n_proto dəyəri hdr_gso_type-a qarşı təsdiqlənir.

CiddilikOrta
CVSS4.4
İstismar ehtimalı—
MəhsulMicrosoft Azl3 Kernel
Dərc23 okt 2026
İlk görülmə23 okt 2026

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əhsulTəsirlənən versiyalarDüzəldildiyi versiya
microsoft azl3_kernel_6.6.159.1-1Aralıq göstərilməyib—
microsoft azl3_kernel_6.6.157.1-1Aralı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.

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-98954 · Microsoft Azl3 Kernel · Dark Radar