CVE-2025-38350
Təsvir
Linux kernel-də aşağıdakı zəiflik aradan qaldırılmışdır: net/sched: Alt sinif boşaldıqda bildirişləri həmişə ötürün Bəzi sinifli qdisc-lər növbəyə əlavə etmə (enqueue) əməliyyatı zamanı öz siniflərinin növbədən çıxarma (dequeue) idarəedicisini çağıra bilər. Bu, gözlənilmədən alt qdisc-i boşalda və beləliklə qlen_notify() vasitəsilə prosesdə olan sinfi passiv edə bilər. Əksər qdisc-lər bu mərhələdə belə bir davranışı gözləmir və sonda sinfi yenidən aktivləşdirə bilər ki, bu da use-after-free xətasına səbəb olar. İstinad edilən düzəliş commit-i, backlog uçotunu dəyişdirərək HFSC halı üçün bu davranışı düzəltməyə çalışmışdı, lakin valideynin valideyni də eyni problemlə qarşılaşa bildiyi üçün bu tədbir natamam oldu. Aşağıdakı reproducer bu use-after-free xətasını nümayiş etdirir: tc qdisc add dev lo root handle 1: drr tc filter add dev lo parent 1: basic classid 1:1 tc class add dev lo parent 1: classid 1:1 drr tc qdisc add dev lo parent 1:1 handle 2: hfsc def 1 tc class add dev lo parent 2: classid 2:1 hfsc rt m1 8 d 1 m2 0 tc qdisc add dev lo parent 2:1 handle 3: netem tc qdisc add dev lo parent 3:1 handle 4: blackhole echo 1 | socat -u STDIN UDP4-DATAGRAM:127.0.0.1:8888 tc class delete dev lo classid 1:1 echo 1 | socat -u STDIN UDP4-DATAGRAM:127.0.0.1:8888 Köhnəlmiş sinif göstəriciləri üzərində use-after-free xətalarına səbəb olan backlog uçotu problemləri təkrar olunan bir model olduğu üçün, bu yamaq fərqli yanaşma tətbiq edir. Yamaq uçotu düzəltməyə çalışmaq əvəzinə, alt qdisc boş olduqda qdisc_tree_reduce_backlog funksiyasının həmişə qlen_notify funksiyasını çağırmasını təmin edir. Bu, problemi həll edir, çünki qdisc-lərin silinməsi həmişə qdisc_reset() və/və ya qdisc_purge_queue() çağırışını ehtiva edir ki, bu da nəticədə onun qlen dəyərini 0-a sıfırlayaraq növbəti qdisc_tree_reduce_backlog() funksiyasının valideynə hesabat verməsinə səbəb olur. Qeyd edək ki, bu, passiv siniflərdə qlen_notify funksiyasını bir neçə dəfə çağıra bilər. Bütün sinifli qdisc-lərin qlen_notify() idarəedicilərini idempotent edən son yamaq seriyasından sonra bu artıq problem törətmir.
Necə düzəltmək olar
- linux linux_kernel5.4.296, 5.10.240, 5.15.187, 6.1.144, 6.6.97, 6.12.37, 6.15, 6.15.6 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.294 ≤ v < 5.4.296, 5.10.238 ≤ v < 5.10.240, 5.15.185 ≤ v < 5.15.187, 6.1.141 ≤ v < 6.1.144, 6.6.93 ≤ v < 6.6.97, 6.12.31 ≤ v < 6.12.37, 6.14.9 ≤ v < 6.15, 6.15.1 ≤ v < 6.15.6, 6.15, 6.16 | 5.4.296, 5.10.240, 5.15.187, 6.1.144, 6.6.97, 6.12.37, 6.15, 6.15.6 |
| debian debian_linux | 11.0 | — |
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.