CVE-2026-31488

Yüksək

Təsvir

Linux kernel-də aşağıdakı zəiflik aradan qaldırılıb: drm/amd/display: DSC validasiyasında əlaqəsiz rejim dəyişikliklərini ötürməyin 17ce8a6907f7 ("drm/amd/display: Add dsc pre-validation in atomic check") commit-indən başlayaraq, müəyyən bir axın üçün DSC konfiqurasiyasının yenidən hesablanması zamanı tayminq dəyişikliyi baş vermədikdə, amdgpu CRTC vəziyyətinin mode_changed bayrağını false olaraq sıfırlayır. Lakin, eyni KMS commit-ində digər (əlaqəsiz) rejim dəyişikliyi ilə birlikdə MST/DSC konfiqurasiya dəyişikliyinin baş verdiyi ssenarilərdə bu yanlışdır. Məsələn, noutbukun inteqrasiya olunmuş paneli xarici ekranların qoşulub-qoşulmamasından asılı olaraq fərqli şəkildə konfiqurasiya edilə bilər (məsələn, HDR aktiv/deaktiv). Bu halda, xarici DP-MST ekranlarının qoşulması, əgər inteqrasiya olunmuş panelin DSC konfiqurasiyası pre_validate_dsc() funksiyasındakı ilkin hesablamalar zamanı dəyişməyibsə, mode_changed bayrağının yanlış şəkildə silinməsinə səbəb ola bilər. Bu mərhələdə dm_update_crtc_state() artıq DSC-dən asılı olmayan rejim dəyişiklikləri olan CRTC-lər üçün yeni axınlar yaratmış olur. Öz növbəsində, amdgpu_dm_commit_streams() köhnə axını heç vaxt azad etmir ki, bu da yaddaş sızmasına (memory leak) səbəb olur. amdgpu_dm_atomic_commit_tail() həmçinin yeni axına heç vaxt istinad əldə etmir, bu isə axın daha sonra deaktiv edildikdə use-after-free kimi özünü göstərir: BUG: KASAN: use-after-free in dc_stream_release+0x25/0x90 [amdgpu] Write of size 4 at addr ffff88813d836524 by task kworker/9:9/29977 Workqueue: events drm_mode_rmfb_work_fn Call Trace: <TASK> dump_stack_lvl+0x6e/0xa0 print_address_description.constprop.0+0x88/0x320 ? dc_stream_release+0x25/0x90 [amdgpu] print_report+0xfc/0x1ff ? srso_alias_return_thunk+0x5/0xfbef5 ? __virt_addr_valid+0x225/0x4e0 ? dc_stream_release+0x25/0x90 [amdgpu] kasan_report+0xe1/0x180 ? dc_stream_release+0x25/0x90 [amdgpu] kasan_check_range+0x125/0x200 dc_stream_release+0x25/0x90 [amdgpu] dc_state_destruct+0x14d/0x5c0 [amdgpu] dc_state_release.part.0+0x4e/0x130 [amdgpu] dm_atomic_destroy_state+0x3f/0x70 [amdgpu] drm_atomic_state_default_clear+0x8ee/0xf30 ? drm_mode_object_put.part.0+0xb1/0x130 __drm_atomic_state_free+0x15c/0x2d0 atomic_remove_fb+0x67e/0x980 DSC validasiyası zamanı CRTC-nin gözlənilən əlaqəsiz rejim dəyişikliklərinin olub-olmadığını müəyyən etməyin etibarlı yolu olmadığına görə, CRTC-nin DSC konfiqurasiya dəyişikliyindən potensial olaraq təsirləndiyi qeyd edilməzdən əvvəlki mode_changed bayrağının dəyəri yadda saxlanılır. Bunun əvəzinə, pre_validate_dsc() funksiyasında mode_changed bayrağı bu əvvəlki dəyərə sıfırlanır. (cc7c7121ae082b7b82891baa7280f1ff2608f22b commit-indən cherry pick edilib)

CiddilikYüksək
CVSS7.8
İstismar ehtimalı—
MəhsulLinux Kernel
Dərc22 apr 2026
İlk görülmə22 apr 2026

Necə düzəltmək olar

Təsirlənən məhsullar

MəhsulTəsirlənən versiyalarDüzəldildiyi versiya
linux linux_kernel5.18.1 ≤ v < 6.12.80, 6.13 ≤ v < 6.18.21, 6.19 ≤ v < 6.19.11, 5.18, 7.06.12.80, 6.18.21, 6.19.11

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.