CVE-2024-53071
Təsvir
Linux kernel-də aşağıdakı zəiflik aradan qaldırılmışdır: drm/panthor: IO mapping bayraqları ilə bağlı daha ciddi məhdudiyyətlər tətbiq edilsin Mövcud panthor_device_mmap_io() implementasiyasında iki problem var: 1. DRM_PANTHOR_USER_FLUSH_ID_MMIO_OFFSET mappingi üçün panthor_device_mmap_io(), əgər VM_WRITE təyin olunubsa prosesi dayandırır, lakin VM_MAYWRITE bayrağını təmizləmir. Bu o deməkdir ki, istifadəçi sahəsi (userspace) sonradan mapping-i yazıla bilən etmək üçün mprotect()-dən istifadə edə bilər. Bu, klassik Linux drayver səhvidir. Hesab olunur ki, bunun praktikada heç bir təsiri yoxdur: GPU aktiv olduqda FLUSH_ID-yə yazma əməliyyatları nəzərə alınmır; GPU aktiv olmadıqda isə drayver tərəfindən təmin edilən dummy_latest_flush səhifəsi qəsdən heç bir flush əməliyyatı etməmək üçün dizayn edilmişdir, beləliklə, dummy_latest_flush-ə yazmaq yalnız *daha çox* flush əməliyyatının baş verməsinə səbəb ola bilər. 2. panthor_device_mmap_io() MAP_PRIVATE mappinglərini (hansılar ki, VM_SHARED bayrağı olmayan mappinglərdir) bloklamır. MAP_PRIVATE və VM_MAYWRITE kombinasiyası göstərir ki, VMA copy-on-write semantikasınadır, bu isə VM_PFNMAP üçün qismən dəstəklənsə də, kifayət qədər problemlidir. Xüsusilə, belə bir mapping-də drayver yalnız mmap() zamanı remap_pfn_range() funksiyasını çağıraraq PTE-ləri quraşdıra bilər (çünki remap_pfn_range() map edilmiş fiziki yaddaşın fiziki ünvanını VMA-nın vm_pgoff hissəsində saxlamaq istəyir); panthor-da olduğu kimi, sonradan fault handler vasitəsilə PTE-lərin quraşdırılması private mappinglərdə dəstəklənmir və buna görə də belə bir mapping-də fault törətməyə çalışdıqda, vmf_insert_pfn_prot() BUG() yoxlamasına rast gəldiyi an sistem çökməsi (splat) baş verir. Problem, VM_MAYWRITE bayrağının təmizlənməsi (istifadəçi sahəsinin FLUSH_ID-yə yazması mənasızdır) və VM_SHARED tələbinin qoyulması (FLUSH_ID üçün copy-on-write semantikası mənasızdır) ilə həll edilmişdir. Hər iki ssenari üçün reproduksiyalar poçt siyahısındakı patch qeydlərində mövcuddur; bu xətaların Rock 5B cihazında mövcut olduğu test edilmişdir. Qeyd edin ki, patch yalnız komplyasiya testindən keçmişdir, hələ tam test edilməmişdir; test cihazı üçün işlək kernel build quruluşu hələ hazırlanmayıb. Zəhmət olmasa, tətbiq etməzdən əvvəl onu test edin.
Necə düzəltmək olar
- linux linux_kernel6.11.8 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 | 6.10 ≤ v < 6.11.8, 6.12 | 6.11.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.
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.