CVE-2026-43050

Yüksək

Təsvir

Linux kernel-də aşağıdakı zəiflik aradan qaldırılıb: atm: lec: sock_def_readable() funksiyasında use-after-free xətası düzəldildi lec_atm_close() tərəfindən priv->lecd dəyişəninin NULL təyin edilməsi ilə send_to_lecd(), lec_handle_bridge() və lec_atm_send() funksiyalarında priv->lecd-yə eyni vaxtda daxil olma arasında yarış şəraiti (race condition) mövcuddur. Bir axın hələ də soketdən istifadə edərkən, soket RCU vasitəsilə azad edildikdə, soketin gözləmə növbəsinə müraciət zamanı sock_def_readable() funksiyasında use-after-free xətası baş verir. Problemin əsas səbəbi ondur ki, lec_atm_close() heç bir sinxronizasiya olmadan priv->lecd-ni təmizləyir, çağırıcılar isə eyni vaxtda baş verən sökülməyə qarşı heç bir mühafizə olmadan priv->lecd-ni dereference edirlər. Bu problem priv->lecd-nin RCU ilə qorunan göstəriciyə çevrilməsi ilə həll edilir: - lec.h faylında priv->lecd __rcu olaraq işarələndi - Təhlükəsiz göstərici təyinatı üçün lec_atm_close() və lecd_attach() funksiyalarında rcu_assign_pointer() istifadə edildi - lec_start_xmit(), lec_push(), send_to_lecd() və lecd_attach() funksiyalarında göstəricini dereference etməyən NULL yoxlamaları üçün rcu_access_pointer() istifadə edildi - lecd-yə təhlükəsiz giriş üçün send_to_lecd(), lec_handle_bridge() və lec_atm_send() funksiyalarında rcu_read_lock/rcu_dereference/rcu_read_unlock istifadə edildi - Bütün oxucuların prosesi tamamladığından əmin olmaq üçün lec_atm_close() funksiyasında rcu_assign_pointer()-dən sonra synchronize_rcu() istifadə edildi. Bu təhlükəsizdir, çünki lec_atm_close() lock_sock() (yuxuya gedən kilid) tutan vcc_release() tərəfindən çağırılır. - lec_atm_close() funksiyasından manual sk_receive_queue boşaltma əməliyyatı çıxarıldı, çünki vcc_destroy_socket() artıq lec_atm_close() geri döndükdən sonra onu boşaldır. v2: Yarış şəraitini düzgün şəkildə həll etmək üçün spinlock + sock_hold/put yanaşmasından RCU-ya keçid edildi. Eric Dumazet tərəfindən v1 spinlock yanaşmasında iki problem qeyd edilmişdi: 1. Kilid buraxıldıqdan sonra lokal nüsxədən istifadə etmək əvəzinə priv->lecd-yə hələ də birbaşa müraciət edilirdi. 2. Spinlock, lec_atm_close() sk_receive_queue-nu boşaltdıqdan sonra paketlərin növbəyə alınmasının qarşısını almırdı, çünki taymer və workqueue yolları netif_stop_queue() funksiyasını yan keçir. Qeyd: Syzbot yaması testi cəhd edildi, lakin test VM-i çox güman ki, bu düzəlişlə əlaqəsi olmayan QEMU AHCI emulyasiyası problemi səbəbindən "Connection to localhost closed by remote host" mesajı ilə gözlənilmədən dayandı. "make W=1 net/atm/lec.o" ilə kompilyasiya testi uğurla tamamlandı.

CiddilikYüksək
CVSS7.0
İstismar ehtimalı—
MəhsulLinux Kernel
Dərc1 may 2026
İlk görülmə1 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_kernel2.6.12.1 ≤ v < 5.10.253, 5.11 ≤ v < 5.15.203, 5.16 ≤ v < 6.1.168, 6.2 ≤ v < 6.6.134, 6.7 ≤ v < 6.12.81, 6.13 ≤ v < 6.18.22, 6.19 ≤ v < 6.19.12, 2.6.12, 7.05.10.253, 5.15.203, 6.1.168, 6.6.134, 6.12.81, 6.18.22, 6.19.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.

CVE-2026-43050 · Linux Kernel · Dark Radar