CVE-2024-46828

Yüksək

Təsvir

Linux nüvəsində aşağıdakı zəiflik aradan qaldırılıb: sched: sch_cake: host ədalətliliyi üçün kütlə axınlarının uçotu məntiqini düzəltmək sch_cake-də, dst/src host ədalətliliyi rejimi aktiv olduqda, hər host üzrə aktiv kütlə axınlarının sayını izləyirik və bu sayı axınlar arasında dövr etdikdə round-robin çəkisi kimi istifadə edirik. Aktiv kütlə axınlarının sayı, axının vəziyyəti dəyişdikdə yenilənir. Bunun heş collision (heş toqquşması) idarəetməsi ilə qeyri-adi qarşılıqlı təsiri var: heş toqquşması baş verdikdə (set-associative heşləmədən sonra), heş səbətinin vəziyyəti sadəcə toqquşan yeni paketə uyğun olaraq yenilənir və əgər host ədalətliliyi aktivdirsə, bu həmçinin axına yeni host-a aid vəziyyətin təyin edilməsi deməkdir. Bu səbəbdən, yeni vəziyyət təyin edilməzdən əvvəl axına təyin edilmiş host(lar)-ın kütlə axını sayğacları azaldılır (və artıq eyni hosta aid olmaya bilən sayğaclar yenidən artırılır). Bu kod tətbiq edildiyi vaxt host ədalətliliyi rejimi həmişə aktiv idi, buna görə də azaltma əməliyyatı şərtsiz yerinə yetirilirdi. Konfiqurasiya bayraqları tətbiq edildikdən sonra *artırma* əməliyyatı şərtli edildi, lakin *azaltma* əməliyyatı belə olmadı. Bu isə, təbii ki, yanlış azaltmaya (və bununla bağlı U16_MAX-a wrap-around/dövri keçidə) səbəb ola bilər. Məlum olduğuna görə, host ədalətliliyi deaktiv olduqda, heş toqquşması baş verən kimi azaltma və wrap-around baş verir (set-associative heşləmə sayəsində bu hal özlüyündə çox yaygın deyil). Lakin əksər hallarda bu zərərsizdir, çünki dəyər yalnız host ədalətliliyi rejimi aktiv olduqda istifadə olunur. Beləliklə, massiv daşmasını (array overflow) tetikləmək üçün sch_cake əvvəlcə host ədalətliliyi deaktiv edilmiş şəkildə konfiqurasiya edilməli və bu rejimdə işləyərkən daşmaya səbəb olmaq üçün heş toqquşması baş verməlidir. Daha sonra qdisc, host ədalətliliyini aktivləşdirmək üçün yenidən konfiqurasiya edilməlidir ki, bu da wrap-around olmuş dəyərin saxlanılması və massiv indeksi kimi istifadə edilməsi səbəbindən massivin sərhədlərindən kənara çıxmaya (out-of-bounds) gətirib çıxarır. Görünür ki, syzbot bunu tetikləməyi bacarıb, hansı ki, bu özlüyündə kifayət qədər təsirli bir nəticədir. Bu yamaq, azaltma əməliyyatına da artırmada istifadə olunan eyni şərti yoxlamanı tətbiq etməklə problemi həll edir. Orijinal xəta cake-in upstream versiyasına daxil edilməsindən əvvələ aid olsa da, Fixes teqində göstərilən commit həmin kodu dəyişdirmişdir, bu isə o deməkdir ki, bu yamaq həmin commit-dən əvvəlki versiyalara tətbiq edilməyəcək.

CiddilikYüksək
CVSS7.1
İstismar ehtimalı—
MəhsulLinux Kernel
Dərc27 sen 2024
İlk görülmə27 sen 2024

Necə düzəltmək olar

Yeniləyin
  • linux linux_kernel5.4.284, 5.10.226, 5.15.167, 6.1.110, 6.6.51, 6.10.10 və ya daha yeni versiya

Təsirlənən məhsullar

MəhsulTəsirlənən versiyalarDüzəldildiyi versiya
linux linux_kernel5.1 ≤ v < 5.4.284, 5.10 ≤ v < 5.10.226, 5.15 ≤ v < 5.15.167, 6.1 ≤ v < 6.1.110, 6.6 ≤ v < 6.6.51, 6.10 ≤ v < 6.10.10, 6.115.4.284, 5.10.226, 5.15.167, 6.1.110, 6.6.51, 6.10.10

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-2024-46828 · Linux Kernel · Dark Radar