CVE-2025-38463
Təsvir
Linux kernel-də aşağıdakı zəiflik aradan qaldırılmışdır: tcp: skb qalıq sahəsinin hesablanmasında imzalanmışlıq düzəldildi Syzkaller, sk->sk_forward_alloc dəyişəninin daşa biləcəyi bir xəta [1] bildirmişdir. Məlumat göndərdikdə, əgər yazı növbəsinin sonunda bir skb mövcuddursa, kernel yeni məlumatları həmin skb-yə əlavə etməyə çalışacaq. Lakin, skb-də mövcud sahəni yoxlayan kod qüsurludur: ''' copy = size_goal - skb->len ''' İştirak edən dəyişənlərin tipləri belədir: ''' copy: ssize_t (64 bitli sistemlərdə s64) size_goal: int skb->len: unsigned int ''' C dilinin tip artırma qaydalarına görə, çıxma əməliyyatından əvvəl imzalanmış size_goal, skb->len ilə uyğunlaşmaq üçün unsigned int tipinə çevrilir. Nəticə unsigned int olur. Bu unsigned int nəticəsi daha sonra s64 copy dəyişəninə mənimsədildikdə, sıfırla genişləndirilir və onun qeyri-mənfi dəyəri qorunur. Nəticə etibarilə, copy hər zaman >= 0 olur. Tutaq ki, biz 2 QB məlumat göndəririk və size_goal skb->len-dən kiçik bir dəyərə tənzimlənib. Çıxma əməliyyatı nəticəsində copy çox böyük müsbət tam ədəd qəbul edəcək. Sonrakı məntiqdə bu böyük dəyər sk->sk_forward_alloc dəyişənini yeniləmək üçün istifadə olunur ki, bu da onun asanlıqla daşmasına səbəb ola bilər. Syzkaller reproduceri bu şəraiti etibarlı şəkildə yaratmaq üçün TCP_REPAIR-dən istifadə edir. Lakin bu, real ssenarilərdə də baş verə bilər. tcp_bound_to_half_wnd() funksiyası da size_goal dəyərini kiçik bir rəqəmə endirə bilər. Bu isə sonrakı tcp_wmem_schedule() funksiyasının sk->sk_forward_alloc dəyərini INT_MAX-a yaxın bir rəqəmə təyin etməsinə səbəb olar. Daha sonrakı yaddaş ayırmaq sorğuları issa sk_forward_alloc-un dövr edərək mənfi olması ilə nəticələnərdi. [1]: https://syzkaller.appspot.com/bug?extid=de6565462ab540f50e47
Necə düzəltmək olar
- linux linux_kernel6.6.99, 6.12.39, 6.15.7 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 | 6.5 ≤ v < 6.6.99, 6.7 ≤ v < 6.12.39, 6.13 ≤ v < 6.15.7, 6.16 | 6.6.99, 6.12.39, 6.15.7 |
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.