CVE-2026-63918

Yüksək

Təsvir

Linux kernel-də aşağıdakı zəiflik aradan qaldırılmışdır: l2tp: l2tp_session_get_by_ifname funksiyasında refcount_inc_not_zero istifadə edin l2tp_session_get_by_ifname() funksiyasındakı oxuyucu, refcount dəyəri sıfıra çatmış sessiyaya göstərən göstəricini qaytara bilər. Getter funksiyası istinadı adi refcount_inc() ilə götürür, lakin eyni fayldakı digər bütün sessiya getterləri (l2tp_v2_session_get, l2tp_v3_session_get və müvafiq _get_next variantları) refcount_inc_not_zero()-dən istifadə edir, çünki IDR/RCU axtarışı refcount_dec_and_test() -> l2tp_session_free() -> kfree_rcu() ilə yarışa girə bilər. ifname getter-i yeganə istisnadır; bu uyğunsuzluq 979c017803c4 ("l2tp: use list_del_rcu in l2tp_session_unhash") commit-indən sonra siyahıda qeyd edilmişdir. rcu_read_lock_bh() daxilində session->ifname ilə uyğunlaşan bir oxuyucu, strcmp() və refcount_inc() arasında preemption-a məruz qala bilər. Əgər həmin zaman intervalında digər CPU-da sonuncu istinad silinərsə, oxuyucunun refcount_inc() funksiyası sıfıra çatmış sayğac üzərində işləyəcək. refcount_t sıfıra əlavə etməni aşkar edir, "refcount_t: addition on 0; use-after-free" mesajını çap edir, sayğacı doyurur və çağırana doyurulmuş göstəricini qaytarır. Sessiya yaddaşı davam edən RCU oxuma bölməsi tərəfindən saxlanılır, lakin l2tp_session_free() vasitəsilə növbəyə alınmış kfree_rcu() geri çağırma funksiyası lütf periodu bağlandıqda onu azad edəcək; qaytarılan sessiyanı həmin nöqtədən sonra dereference edən çağırıcı slab-use-after-free xətası ilə qarşılaşacaq. PREEMPT_RT-də local_bh_disable() hər CPU üçün yuxulama kilididir və preemption pəncərəsi realdır; standart PREEMPT kernellərində isə local_bh_disable() praktiki olaraq CPU-lar arası yarışı bağlayan preempt_count artımıdır (aşağıya baxın). Fayldakı digər sessiya getterlərinə uyğun olaraq, refcount_inc_not_zero() istifadə edin və uğursuz olduqda siyahı gəzintisini davam etdirin. ifname getter-i net/l2tp/ daxilində hələ də sadə refcount_inc() modelindən istifadə edən yeganə sessiya getter-idir; bu dəyişiklik fayl daxili ardıcıllığı bərpa edir. Uğurlu yol dəyişməmişdir.

CiddilikYüksək
CVSS7.8
İstismar ehtimalı—
MəhsulLinux Kernel
Dərc19 iyl 2026
İlk görülmə19 iyl 2026

Necə düzəltmək olar

Yeniləyin
  • linux linux_kernel6.12.93, 6.18.35, 7.0.12 və ya daha yeni versiya

Təsirlənən məhsullar

MəhsulTəsirlənən versiyalarDüzəldildiyi versiya
linux linux_kernel6.12 ≤ v < 6.12.93, 6.13 ≤ v < 6.18.35, 6.19 ≤ v < 7.0.12, 7.16.12.93, 6.18.35, 7.0.12

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.