CVE-2026-98999
Təsvir
Linux kernel-də aşağıdakı zəiflik aradan qaldırılıb: drm/xe: fb-pin sonuncu unpin əməliyyatını yerinə yetirdikdə köhnəlmiş pinned_link yazısının qalmasının qarşısı alındı xe_bo_pin_external() və xe_bo_unpin_external() funksiyaları, cari çağırışın ən xarici pin və ya sonuncu unpin olub-olmamasına əsasən, bo-nun xe->pinned.late.external daxilindəki pinned_link siyahısındakı üzvlüyünü idarə edir. Lakin eyni xarici bo-nun pin_count dəyəri birbaşa __xe_pin_fb_vma()/__xe_unpin_fb_vma() tərəfindən də artırıla və azaldıla bilər; bu funksiyalar bo-nu heç bir şəkildə xe_bo_pin_external()/xe_bo_unpin_external() vasitəsilə keçmədən displey skanout buferi kimi pin edirlər və pinned_link haqqında məlumatı və ya onun üzərində mülkiyyət hüququnu yoxdur. Əgər bo həm xaricən (məsələn, dma-buf eksportu), həm də fb kimi pin edilibsə və xarici unpin daha əvvəl baş veribsə, xe_bo_unpin_external() düzgün şəkildə pin_count > 1 olduğunu görür və bo-nu pinned_link-də saxlayır. Daha sonra fb unpin əməliyyatı həqiqi sonuncunu (pin_count 1 -> 0) yerinə yetirdikdə, o, pinned_link-ə toxunmur və beləliklə bo müddətsiz olaraq xe->pinned.late.external siyahısında qalır. Bo sonradan azad edildikdə, bu köhnəlmiş siyahı yazısı azad edilmiş yaddaşa işarə edir ki, bu da siyahını korlayır və növbəti dəfə siyahı gəzildikdə və ya birləşdirildikdə use-after-free riskini yaradır. xe_bo_notifier_prepare_pinned()/xe_bo_notifier_unprepare_pinned() funksiyalarındakı ehtiyat obyekt pin/unpin sahələri də eyni yan keçmə xüsusiyyətinə malikdir, lakin onlar öz bo-larını heç vaxt pinlənmiş siyahıya əlavə etmir və buna görə də bu konkret siyahının korlanması probleminə təsir etmirlər. pinned_link silinməsi prosesi, artıq hər bir unpin yolu (kernel, external, framebuffer, backup object) üzrə həqiqi 1 -> 0 pin_count keçidindən dərhal əvvəl işləyən xe_bo_account_unpin() funksiyasına köçürülüb. list_del_init() yalnız düyünün özü ilə işlədiyindən, bu silinmə siyahıdan asılı olmayaraq və bo-nun hansı siyahıda (external və ya kernel_bo_present) yerləşməsindən və ya hansı kod yolunun sonuncu unpin-i yerinə yetirməsindən asılı olmayaraq təhlükəsizdir. xe_bo_unpin_external() və xe_bo_unpin() funksiyalarında artıq lazımsız olan aşkar list_del_init() çağırışları çıxarıldı. v2: - Yeni yam (patch) v3: - Əvvəlki yamda edilən dəyişikliklər əsasında yenidən quruldu (rebased). (commit ca58d36a1f93af586ee93b340c9f9fd81312cc01-dən cherry pick edildi)
Necə düzəltmək olar
- Linux Linux3a11adcfd9a2de74d405bd3e8c4d7a1b328e4684, b3eaff982839e5c22912d604cd8e7748cece8d63, cf238c067eaae1cbfb00738e29219b9568d2313e və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| Linux Linux | 44e694958b95395bd1c41508c88c8ca141bf9bd7 ≤ v < 3a11adcfd9a2de74d405bd3e8c4d7a1b328e4684, 44e694958b95395bd1c41508c88c8ca141bf9bd7 ≤ v < b3eaff982839e5c22912d604cd8e7748cece8d63, 44e694958b95395bd1c41508c88c8ca141bf9bd7 ≤ v < cf238c067eaae1cbfb00738e29219b9568d2313e, 6.8 | 3a11adcfd9a2de74d405bd3e8c4d7a1b328e4684, b3eaff982839e5c22912d604cd8e7748cece8d63, cf238c067eaae1cbfb00738e29219b9568d2313e |
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.