CVE-2026-98826
Təsvir
Linux kernel-də aşağıdakı zəiflik aradan qaldırılıb: rtc: ac100: Probe uğursuzluğunda clock provider istifadədən sonra azad edilməsi problemini düzəlt ac100_rtc_register_clks() RTC-32k saatını clk_hw_register_fixed_rate() ilə və clock provider-i of_clk_add_hw_provider() ilə qeydiyyatdan keçirir. Heç biri cihaz tərəfindən idarə olunmur və hər ikisi yalnız ac100_rtc_remove()-dən azad edilir. probe() uğursuz olduqda driver core remove()-u çağırmır: really_probe() device_remove() çağırışından aşağıda probe_failed-ə çatır və birbaşa cihazın idarə olunan resurslarını azad etməyə keçir. ac100_rtc_probe() aşağıdakı ilə bitir return devm_rtc_register_device(chip->rtc); belə ki, saatlar qeydiyyatdan keçirildikdən sonra bu uğursuz olarsa, provider qlobal of_clk_providers siyahısında qalır və chip->clk_data-nı saxlayır; bu, devm_kzalloc() ilə ayrılmışdır və probe() geri qaytarılarkən azad edilir. Bu cihaz ağacı qovşağında sonrakı axtarış of_clk_hw_onecell_get()-də azad edilmiş yaddaşı oxuyur. Məhz bunu edən istehlakçılar ağacda mövcuddur: sun8i-a83t-bananapi-m3 və sun8i-a83t-cubietruck-plus üzərindəki wifi power sequence qovşaqları <&ac100_rtc 1> qəbul edir, sun9i-a80 lövhələri isə osc32k-ı <&ac100_rtc 0> vasitəsilə yönləndirir. Pəncərə dardır, çünki devm_rtc_register_device() burada yalnız -ENOMEM ilə uğursuz ola bilər, lakin uğursuz olduqda provider asılı vəziyyətdə qalır. RTC-32k saatı eyni yolda sızır. clk_core_lookup() hər cihaz üzrə məhdudlaşdırılmayan qlobal siyahıda axtarış etdiyindən, __clk_register() dublikat adı -EEXIST ilə rədd edir, beləliklə sızma həm də eyni cihazın sonrakı probe-unun uğursuz olmasına səbəb olur. ADDA 4M valideyn saatı tapılmadıqda -EINVAL qaytaran xəta yolu RTC-32k saatını eyni şəkildə sızdırır. Həmin anda heç bir provider qeydiyyatdan keçirilməmişdir, ona görə də bu, istifadədən sonra azad edilmə deyil, sızma halıdır. Hər ikisini devm_clk_hw_register_fixed_rate() və devm_of_clk_add_hw_provider() ilə qeydiyyatdan keçirin ki, cihaz getdikdə, uğursuz probe zamanı da, unbind zamanı da azad edilsinlər. Devres resursları əldə edilmə ardıcıllığının əksinə azad edir, beləliklə provider chip->clk_data azad edilməzdən əvvəl silinir və clkout övladları indi valideynlərindən sonra deyil, əvvəl qeydiyyatdan çıxarılır. ac100_rtc_unregister_clks() və remove callback-inin artıq görəcək işi qalmır və onlar silinir.
Necə düzəltmək olar
- Linux Linux12bcd20d76703ee2baf52224d287b7fea096b12f, 9cff19ddd7f90c1f572a0f83cfc41de8f8dcbcd8, 55ca60ba336632349f7c4585d22ba74ae355b7ce, fcf0b58e976e83adf246b014518e49c662b96f5e və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| Linux Linux | d00a18a42c1483924de086ddfb0efe8da1dba3ac ≤ v < 12bcd20d76703ee2baf52224d287b7fea096b12f, d00a18a42c1483924de086ddfb0efe8da1dba3ac ≤ v < 9cff19ddd7f90c1f572a0f83cfc41de8f8dcbcd8, d00a18a42c1483924de086ddfb0efe8da1dba3ac ≤ v < 55ca60ba336632349f7c4585d22ba74ae355b7ce, d00a18a42c1483924de086ddfb0efe8da1dba3ac ≤ v < fcf0b58e976e83adf246b014518e49c662b96f5e, 4.9 | 12bcd20d76703ee2baf52224d287b7fea096b12f, 9cff19ddd7f90c1f572a0f83cfc41de8f8dcbcd8, 55ca60ba336632349f7c4585d22ba74ae355b7ce, fcf0b58e976e83adf246b014518e49c662b96f5e |
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.