CVE-2026-31731

Yüksək

Təsvir

Linux kernel-də aşağıdakı zəiflik aradan qaldırılmışdır: thermal: core: Termal zonanın silinməsi ilə bərpa (resume) arasındakı yarış vəziyyətinin həlli thermal_zone_pm_complete() və thermal_zone_device_resume() funksiyaları müvafiq termal zona üçün poll_queue gecikdirilmiş işini yenidən başlatdığına görə, thermal_zone_device_unregister() daxilindəki cancel_delayed_work_sync() artıq icra olunan bəzi iş elementlərini qaçıra bilər və termal zona vaxtından əvvəl azad edilə bilər [1]. Hər ikisi termal zonalardan biri üçün thermal_zone_device_unregister() çağırılmadan dərhal əvvəl thermal_pm_notify_complete() funksiyasının icrası ilə başlayan iki uğursuz ssenari mövcuddur. Birinci ssenaridə, thermal_pm_notify_complete() həmin termal zona üçün thermal_zone_pm_complete() funksiyasını çağırdıqda, artıq icra olunan bir iş elementi olur və thermal_zone_device_unregister() başladığında bu proses davam edir. poll_queue gecikdirilmiş işi thermal_pm_notify_complete() tərəfindən yenidən başladıldığı üçün, icra olunan iş elementi thermal_zone_device_unregister() daxilindəki cancel_delayed_work_sync() tərəfindən nəzərdən qaçırılacaq və əgər o, termal zona obyektinin azad edilməsindən sonra da çalışmağa davam edərsə, use-after-free baş verəcək. İkinci ssenaridə, thermal_pm_notify_complete() tərəfindən növbəyə alınan thermal_zone_device_resume(), thermal_zone_device_unregister() tərəfindən çağırılan thermal_zone_exit() geri döndükdən dərhal sonra icra olunur. poll_queue gecikdirilmiş işi, thermal_zone_device_unregister() tərəfindən cancel_delayed_work_sync() çağırılmazdan əvvəl onun tərəfindən yenidən başladılır, buna görə də o, termal zona obyektinin azad edilməsindən sonra da işləməyə davam edə bilər ki, bu da use-after-free-yə səbəb olur. Birinci uğursuz ssenari, thermal_pm_notify_complete() çağırıldıqda heç bir termal iş elementinin icra olunmadığından əmin olmaqla həll edilir. Bu məqsədlə, gələcəkdə yeni işlərin iş növbəsinə (workqueue) daxil olmasının qarşısını almaq üçün ilk öncə cancel_delayed_work() çağırışı thermal_zone_pm_complete()-dən thermal_zone_pm_prepare()-ə köçürülür. Daha sonra, termal hadisələr üçün xüsusi bir iş növbəsindən istifadəyə keçilir və thermal_pm_notify() daxilindəki kod, thermal_pm_notify_prepare() geri döndükdən sonra həmin iş növbəsini təmizləmək (flush) üçün yenilənir; bu, iş növbəsində qalan bütün termal işləri həll edəcək (həmin qalıq işlər onsuz da faydalı bir şey etməyəcək, çünki bütün termal zonalar dayandırılmış (suspended) kimi qeyd edilmişdir). İkinci uğursuz ssenari, termal zona silinirsə, poll_queue gecikdirilmiş işinin yenidən başladılmasının qarşısını almaq üçün thermal_zone_device_resume() funksiyasına tz->state yoxlamasının əlavə edilməsi ilə həll edilir. Qeyd edək ki, yuxarıdakı dəyişikliklər həmçinin termal zonaların dayandırılması (suspend) və bərpasının (resume), müvafiq olaraq cihazların dayandırılması və bərpasına daha yaxın yerləşdirilməsini asanlaşdıracaqdır.

CiddilikYüksək
CVSS7.8
İstismar ehtimalı—
MəhsulLinux Kernel
Dərc1 may 2026
İlk görülmə1 may 2026

Necə düzəltmək olar

Yeniləyin
  • linux linux_kernel6.12.83, 6.18.22, 6.19.12 və ya daha yeni versiya

Təsirlənən məhsullar

MəhsulTəsirlənən versiyalarDüzəldildiyi versiya
linux linux_kernel6.8 ≤ v < 6.12.83, 6.13 ≤ v < 6.18.22, 6.19 ≤ v < 6.19.12, 7.06.12.83, 6.18.22, 6.19.12

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-31731 · Linux Kernel · Dark Radar