CVE-2024-42096

Orta

Təsvir

Linux nüvəsində aşağıdakı zəiflik aradan qaldırılmışdır: x86: profile_pc() funksiyasında stek əməliyyatlarının dayandırılması 'profile_pc()' funksiyası taymer əsaslı profilləmə üçün istifadə olunur ki, bu artıq çox aktual deyil, lakin həmçinin stek düzülüşünə əsaslanan və mütləq şəkildə etibarlı olmayan fərziyyələrə söykənir. Əslində, kod spinlock-larda keçirilən vaxtı spinlock-un özünə yox, çağıran tərəfə yazmağa çalışır. Konsept olaraq bunu dəstəkləsəm də, günümüzdə taymerlər vasitəsilə ciddi profilləmə aparılmadığı üçün bu, kodun mürəkkəbliyinə və ya KASAN xəbərdarlıqlarına dəyməz. Və kod həqiqətən yalnız ən sadə hallarda doğru olan stek düzülüşündən asılıdır. Müəyyən bir mərhələdə (ehtimal ki, 32-bit və 64-bit kodları birləşdiriləndə) şərh itmişdi, lakin orada belə qeyd olunmuşdu: Fərz edin ki, kilidləmə funksiyasının ya stek freymi yoxdur, ya da PUSHF-dən götürülmüş eflags surəti var. Bu, kodun niyə kor-koranə stek göstəricisindən bir və ya iki söz yüklədiyini və sonra onların eflags və ya geri dönüş pc-si olub-olmadığını yoxlamaq üçün dəyərlərə minimum baxış keçirdiyini izah edir: Kernel ünvanlarından fərqli olaraq, Eflags-da 22-ci və daha yuxarı bitlər həmişə sıfırlanmış olur. Lakin bu təməl stek düzülüşü fərziyyəsi, kodu mürəkkəbləşdirə biləcək və stek freyminə səbəb olacaq heç bir kilid sazlamasının (lock debugging və s.) olmadığını fərz edir. Bu, illərdir syzkaller [1] və digərləri [2] tərəfindən bildirilən KASAN xətalarına səbəb olur. Bunun üçün artıq heç bir real praktiki səbəb qalmadığından, sadəcə kod silindi. Yalnız tarixi maraq üçün, 2006-cı ildən bu koda aid bəzi öncəki commit-lər: 0cb91a229364 ("i386: Account spinlocks to the caller during profiling for !FP kernels") 31679f38d886 ("Simplify profile_pc on x86-64") və 2009-cu ildən kodun birləşdirilməsi: ef4512882dbe ("x86: time_32/64.c unify profile_pc") lakin bu məsələnin əsasları əslində git ağacından daha əvvələ gedib çıxır.

CiddilikOrta
CVSS5.5
İstismar ehtimalı—
MəhsulLinux Kernel
Dərc29 iyl 2024
İlk görülmə29 iyl 2024

Necə düzəltmək olar

Yeniləyin
  • linux linux_kernel4.19.317, 5.4.279, 5.10.221, 5.15.162, 6.1.97, 6.6.37, 6.9.8 və ya daha yeni versiya

Təsirlənən məhsullar

MəhsulTəsirlənən versiyalarDüzəldildiyi versiya
linux linux_kernelv < 4.19.317, 4.20 ≤ v < 5.4.279, 5.5 ≤ v < 5.10.221, 5.11 ≤ v < 5.15.162, 5.16 ≤ v < 6.1.97, 6.2 ≤ v < 6.6.37, 6.7 ≤ v < 6.9.8, 6.104.19.317, 5.4.279, 5.10.221, 5.15.162, 6.1.97, 6.6.37, 6.9.8

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.