CVE-2026-22979

Orta

Təsvir

Linux kernel-də aşağıdakı zəiflik aradan qaldırılmışdır: net: GRO paketləri üçün skb_segment_list funksiyasındakı yaddaş sızmasının düzəldilməsi Paket yönləndirməsi zamanı skb_segment_list() çağırıldıqda, o, GRO mühərriki tərəfindən aqreqasiya edilmiş paketləri emal edir. Tarixən, skb_segment_list funksiyasındakı seqmentasiya məntiqi fərz edirdi ki, fərdi seqmentlər valideyn SKB-dən ayrılır və öz socket yaddaş uçotu məlumatlarını daşıya bilər. Müvafiq olaraq, kod truesize dəyərini valideyndən yeni yaradılmış seqmentlərə ötürürdü. ed4cccef64c1 ("gro: fix ownership transfer") commit-indən əvvəl, skb_segment_list()-dəki bu truesize çıxılması etibarlı idi, çünki fraqmentlər hələ də orijinal socket-ə istinad daşıyırdılar. Lakin, ed4cccef64c1 ("gro: fix ownership transfer") commit-i, stekdə sonradan qeyri-qanuni yetimləşmənin qarşısını almaq üçün fraglist girişlərinin açıq şəkildə yetimləşdirilməsini (skb->sk = NULL) təmin etməklə bu davranışı dəyişmişdir. Bu dəyişiklik bütün socket yaddaş xərcinin baş SKB-də qalması demək idi, lakin skb_segment_list()-dəki müvafiq uçot məntiqi heç vaxt yenilənməmişdi. Nəticədə, mövcud kod şərtsiz olaraq hər bir fraqmentin truesize dəyərini delta_truesize-a əlavə edir və onu valideyn SKB-dən çıxır. Fraqmentlər artıq socket-ə yüklənilmədiyinə görə, bu çıxma əməliyyatı baş SKB azad edildikdə yaddaşın faktiki olaraq az sayılmasına səbəb olur. Bu isə sk_wmem_alloc dəyərinin sıfırdan fərqli qalmasına gətirib çıxarır, socket-in məhv edilməsinə mane olur və davamlı yaddaş sızmasına yol açır. Sızma, şəbəkə mühiti ləğv edilərkən KMEMLEAK vasitəsilə müşahidə edilə bilər: unreferenced object 0xffff8881e6eb9100 (size 2048): comm "ping", pid 6720, jiffies 4295492526 backtrace: kmem_cache_alloc_noprof+0x5c6/0x800 sk_prot_alloc+0x5b/0x220 sk_alloc+0x35/0xa00 inet6_create.part.0+0x303/0x10d0 __sock_create+0x248/0x640 __sys_socket+0x11b/0x1d0 skb_segment_list() eksklüziv olaraq GRO tərəfindən qurulmuş SKB_GSO_FRAGLIST paketləri üçün istifadə edildiyi üçün truesize tənzimləməsi silinmişdir. skb_release_head_state() çağırışı saxlanılmalıdır. cf673ed0e057 ("net: fix fraglist segmentation reference count leak") commit-ində sənədləşdirildiyi kimi, __copy_skb_header() zamanı üzərinə yazıla bilən SKB genişlətmələrinə olan istinadların düzgün şəkildə atılması hələ də tələb olunur.

CiddilikOrta
CVSS5.5
İstismar ehtimalı—
MəhsulLinux Kernel
Dərc23 yan 2026
İlk görülmə23 yan 2026
Zəiflik növüCWE-401CWE-401

Necə düzəltmək olar

Təsirlənən məhsullar

MəhsulTəsirlənən versiyalarDüzəldildiyi versiya
linux linux_kernel5.15.154 ≤ v < 5.16, 6.1.85 ≤ v < 6.1.161, 6.6.26 ≤ v < 6.6.121, 6.8.5 ≤ v < 6.9, 6.9.1 ≤ v < 6.12.66, 6.13 ≤ v < 6.18.6, 6.9, 6.195.16, 6.1.161, 6.6.121, 6.9, 6.12.66, 6.18.6

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.