CVE-2024-36906
Təsvir
Linux kernel-də aşağıdakı zəiflik aradan qaldırılmışdır: ARM: 9381/1: kasan: köhnəlmiş stek zəhərləməsinin təmizlənməsi (clear stale stack poison) Aşağıdakı sərhəd aşımı (OOB) çökməsi aşkar edilmişdir: [ 33.452494] ================================================================== [ 33.453513] BUG: KASAN: stack-out-of-bounds in refresh_cpu_vm_stats.constprop.0+0xcc/0x2ec [ 33.454660] Write of size 164 at addr c1d03d30 by task swapper/0/0 ... [ 33.482978] ================================================================== Bu OOB-nin əsas səbəbinin cpuidle halında ARM-ın köhnəlmiş stek zəhərləməsini təmizləməməsi olduğu müəyyən edilmişdir. Bu problemi həll etmək üçün arch/arm64/kernel/sleep.S faylına düzəliş edilərək yenilənib. Problemi izah edən istinad edilmiş [1] nömrəli commit-ə görə: Kompilyator tərəfindən KASAN üçün instrumentasiya edilmiş funksiyalar giriş zamanı stek kölgəsinə (stack shadow) zəhər yerləşdirir və geri dönməzdən əvvəl bu zəhəri silirlər. cpuidle halında CPU-lar C kodunun bir neçə səviyyə dərinliyində nüvədən çıxırlar. Bu kritik yoldakı hər hansı instrumentasiya edilmiş funksiya stek kölgəsinin hissələrini zəhərlənmiş vəziyyətdə saxlayacaqdır. Əgər CPU-lar konteksti itirsə və soyuq yol vasitəsilə nüvəyə qayıtsalar, biz __cpu_suspend_enter-də saxlanılan əvvəlki konteksti bərpa edirik, lakin bu proses ilə nüvədən faktiki çıxış arasındakı funksiya çağırışları tərəfindən stek kölgə sahəsinə yerləşdirilən zəhərlər heç vaxt silinmir. Beləliklə, (stek freym düzümündən asılı olaraq) instrumentasiya edilmiş funksiyalara növbəti çağırışlar bu köhnəlmiş zəhərə rast gələ bilər ki, bu da konsolda (yanlış) KASAN xətalarının görünməsinə səbəb olur. Bunun qarşısını almaq üçün CPU-nu aktivləşdirməzdən əvvəl boşda olan (idle) axın üçün hər hansı köhnəlmiş zəhəri təmizləyin. İstinad edilmiş [2] nömrəli commit-ə görə: CONFIG_KASAN_STACK yoxlaması genişləndirilmişdir. [1] commit 0d97e6d8024c ("arm64: kasan: clear stale stack poison") [2] commit d56a9ef84bd0 ("kasan, arm64: unpoison stack only with CONFIG_KASAN_STACK")
Necə düzəltmək olar
- linux linux_kernel5.15.159, 6.1.91, 6.6.31, 6.8.10 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.11 ≤ v < 5.15.159, 5.16 ≤ v < 6.1.91, 6.2 ≤ v < 6.6.31, 6.7 ≤ v < 6.8.10, 6.9 | 5.15.159, 6.1.91, 6.6.31, 6.8.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.
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.