CVE-2024-57982
Təsvir
Linux kernel-də aşağıdakı zəiflik aradan qaldırılmışdır: xfrm: state: axtarış zamanı sərhədləri aşan oxuma (out-of-bounds read) xətası düzəldildi axtarış və ölçünün dəyişdirilməsi paralel şəkildə işləyə bilər. xfrm_state_hash_generation seqlock təkrar cəhdin edilməsini təmin edir, lakin heş funksiyaları yeni hlist massivi üçün çox böyük olan hmask dəyərini müşahidə edə bilər. rehash bunu yerinə yetirir: rcu_assign_pointer(net->xfrm.state_bydst, ndst) [..] net->xfrm.state_hmask = nhashmask; State axtarışı isə bunu yerinə yetirir: h = xfrm_dst_hash(net, daddr, saddr, tmpl->reqid, encap_family); hlist_for_each_entry_rcu(x, net->xfrm.state_bydst + h, bydst) { Bu, yalnız state_bydst yeniləməsi net->xfrm.xfrm_state_hmask-dan daha böyük olduqda (və ya axtarış funksiyası yenidən state spinlock vasitəsilə seriyalaşdırıldıqda) təhlükəsizdir. Bunu state_hmask və əlaqəli göstəriciləri öncədən yükləyərək (prefetching) düzəldin. xfrm_state_hash_generation seqlock təkrar cəhdi göstəricinin və hmask-ın ardıcıl olmasını təmin edəcək. xfrm_dst_hash() kimi mövcud köməkçi funksiyalar artıq RCU tərəfi üçün təhlükəsiz deyil; onların yalnız daxiletmə (insert) tərəfi üçün təhlükəsiz olduğunu sənədləşdirmək üçün lockdep assertion-ları əlavə edildi. xfrm_state_lookup_byaddr() RCU əvəzinə spinlock istifadə edir. Gördüyüm qədərilə bu, state axtarışının RCU-ya çevrildiyi vaxtlardan qalmış bir səhvdir; bu kilid gələcək yamada RCU ilə əvəz edilməlidir.
Necə düzəltmək olar
- linux linux_kernel6.12.13, 6.13.2 və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| linux linux_kernel | 4.9 ≤ v < 6.12.13, 6.13 ≤ v < 6.13.2 | 6.12.13, 6.13.2 |
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.
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.