CVE-2023-52879
Təsvir
Linux kernel-də aşağıdakı zəiflik aradan qaldırılmışdır: tracing: trace_event_file üçün istinad sayğaclarının (ref counters) əlavə edilməsi Aşağıdakılar kernel-in çökməsinə səbəb ola bilər: # cd /sys/kernel/tracing # echo 'p:sched schedule' > kprobe_events # exec 5>>events/kprobes/sched/enable # > kprobe_events # exec 5>&- Yuxarıdakı əmrlər: 1. tracefs kataloquna keçid edir 2. kprobe hadisəsi yaradır (hansı olduğu fərqi yoxdur) 3. kprobe hadisəsinin enable faylı üzərində bash fayl deskriptoru 5-i açır 4. kprobe hadisəsini silir (fayllar da silinir) 5. bash fayl deskriptoru 5-i bağlayır Bu proses çökməyə səbəb olur! BUG: kernel NULL pointer dereference, address: 0000000000000028 #PF: supervisor read access in kernel mode #PF: error_code(0x0000) - not-present page PGD 0 P4D 0 Oops: 0000 [#1] PREEMPT SMP PTI CPU: 6 PID: 877 Comm: bash Not tainted 6.5.0-rc4-test-00008-g2c6b6b1029d4-dirty #186 Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.2-debian-1.16.2-1 04/01/2014 RIP: 0010:tracing_release_file_tr+0xc/0x50 Burada baş verən odur ki, kprobe hadisəsi tracefs-dəki hadisəni təmsil edən bir trace_event_file "file" deskriptoru yaradır. O, hadisənin vəziyyətini saxlayır (verilmiş nümunə üçün aktivdirmi?). "enable" faylının açılması, açıq fayl deskriptoru vasitəsilə hadisənin "file" deskriptoruna istinad yaradır. kprobe hadisəsi silindikdə, fayl həmçinin tracefs sistemindən də silinir və bu, hadisənin "file" deskriptorunu azad edir. Lakin tracefs faylı hələ də istifadəçi sahəsi (user space) tərəfindən açıq saxlandığı üçün, sonuncu dput() çağırılanda qədər tamamilə silinməyəcək. Lakin artıq azad edilmiş hadisə "file" deskriptoru üçün bu belə deyil. Əgər istifadəçi fayl deskriptoruna yazı yazarsa və ya onu sadəcə bağlayarsa, o, yeni azad edilmiş hadisə "file" deskriptoruna istinad edəcək ki, bu da use-after-free xətasına səbəb olacaq. Bunu həll etmək üçün hadisə "file" deskriptoruna istinad sayğacı və "FREED" adlı yeni bayraq (flag) əlavə edildi. Sonuncu istinad buraxılana qədər "file" azad edilməyəcək. Lakin hadisənin "file" deskriptoruna hələ də istinad olsa belə, həmin hadisə üzərində daha çox dəyişikliyin qarşısını almaq üçün hadisə silindikdə FREE bayrağı təyin olunacaq.
Necə düzəltmək olar
- linux linux_kernel5.4.262, 5.10.202, 5.15.140, 6.1.64, 6.5.13, 6.6.1 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 | 5.4.258 ≤ v < 5.4.262, 5.10.198 ≤ v < 5.10.202, 5.15.134 ≤ v < 5.15.140, 6.1.55 ≤ v < 6.1.64, 6.5.5 ≤ v < 6.5.13, 6.6 ≤ v < 6.6.1 | 5.4.262, 5.10.202, 5.15.140, 6.1.64, 6.5.13, 6.6.1 |
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.