CVE-2026-98166

Yüksək

Təsvir

Linux nüvəsində aşağıdakı zəiflik aradan qaldırılmışdır: drm/ttm: dəyişdirilmiş (swapped-out) resursların öz bulk_move diapazonundan heç vaxt çıxmamasının düzəldilməsi ttm_tt_swapout() uğurlu olduqda dəyişdirilən səhifələrin sayını, xəta baş verdikdə isə mənfi xəta kodunu qaytarır; doldurulmuş ttm üçün o, heç vaxt sıfır qaytarmır. b2ed01e7ad3d ("drm/ttm: Fix ttm_bo_swapout() infinite LRU walk on swapout failure") commit-i ttm_bo_swapout_cb() funksiyasındakı bulk_move uçotunu "if (!ret)" şərtinin altına köçürmüşdür, buna görə də hər uğurlu swapout zamanı ttm_resource_del_bulk_move_unevictable() / ttm_resource_move_to_lru_tail() cütü indi ötürülür. 1d59f36e95f7 ("drm/ttm: Fix ttm_bo_shrink() infinite LRU walk on backup failure") commit-ində shrinker üçün ekvivalent dəyişiklik "lret > 0" şərtini yoxlayır ki, burada da məqsəd elə bu idi. b2ed01e7ad3d commit-indən əvvəl resurs swapout-dan öncə bulk_move-dan çıxarılırdı; bundan sonra isə dəyişdirilmiş resurs, evictable olmasa belə, öz BO-sunun bulk_move diapazonunda (və menecer LRU-da) qalır. Daha sonra o azad edildikdə və ya BO bulk_move-dan çıxdıqda (ttm_resource_free(), amdgpu_vm_bo_del() vasitəsilə ttm_bo_set_bulk_move()), ttm_resource_del_bulk_move() funksiyası !ttm_resource_unevictable() mühafizəsi səbəbindən onu ötürür, nəticədə pos->first / pos->last-dakı diapazon son nöqtəsi azad edilmiş yaddaşa işarə etməyə davam edir. Həmin kursor üzərindəki növbəti ttm_lru_bulk_move_tail() və ya ttm_resource_add_bulk_move() çağırışı use-after-free xətasına səbəb olur; bu, hibernasiyadan dəqiqələr və ya saatlar sonra, yaxud hibernasiyanı izləyən prosesin çıxışı / yenidən yükləmə zamanı ttm_lru_bulk_move_add()-da resv WARN, ttm_resource_move_to_lru_tail()-da "list_del corruption" və ya ttm_resource_manager_next()-da NULL dereference kimi müşahidə olunur. Samuel Ainsworth-ün drm/amd 5387 nömrəli probleminin təhlili (Link-ə baxın) asılı qalan kursoru müəyyən etmişdir; swapout zamanı silinmənin baş verməməsi onun asılı qalmasının səbəbidir. Uğur şərtinin yoxlanılması silinməni bərpa edir. Backport-u daşıyan 7.0.y stabil nüvəsində (Ubuntu 7.0.0-31) suspend-then-hibernate rejimində çalışan AMD Phoenix APU-da (ASUS UM3406GA, gfx1103) bu xəta 18 hibernasiya dövründən 5-ində sistemin çökməsinə səbəb olmuşdur; bir hibernasiyanın funksiya profili 336 ttm_tt_swapout() çağırışını və sıfır ttm_resource_del_bulk_move_unevictable() çağırışını göstərmişdir. Bu dəyişikliklə silinmə hər bir dəyişdirilmiş resurs üçün baş verir və növbəti 12 dövr problemsiz tamamlanmışdır.

CiddilikYüksək
CVSS7.8
İstismar ehtimalı—
MəhsulLinux
Dərc6 okt 2026
İlk görülmə6 okt 2026

Necə düzəltmək olar

Yeniləyin
  • Linux Linuxb48ebe399b4e72baa323462580fdd83ebda561e1, 1169fe8c11ca45e3f91d59a73eb271d0ca8a7fb0, 3db7d7d583419f7b1f2e141e36418802dbb25cf8, 6.18.59, 7.1 və ya daha yeni versiya

Təsirlənən məhsullar

MəhsulTəsirlənən versiyalarDüzəldildiyi versiya
Linux Linux060f8f3020516d71bc4d6159d4d0beef85606a74 ≤ v < b48ebe399b4e72baa323462580fdd83ebda561e1, b2ed01e7ad3de80333e9b962a44024b094bc0b2b ≤ v < 1169fe8c11ca45e3f91d59a73eb271d0ca8a7fb0, b2ed01e7ad3de80333e9b962a44024b094bc0b2b ≤ v < 3db7d7d583419f7b1f2e141e36418802dbb25cf8, 0124a09e3e5f5f6080efe9663b27af27933f8382, 6.18.57 ≤ v < 6.18.59, 7.0.10 ≤ v < 7.1, 7.1b48ebe399b4e72baa323462580fdd83ebda561e1, 1169fe8c11ca45e3f91d59a73eb271d0ca8a7fb0, 3db7d7d583419f7b1f2e141e36418802dbb25cf8, 6.18.59, 7.1

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-2026-98166 · Linux · Dark Radar