CVE-2026-89903
Təsvir
Linux nüvəsində aşağıdakı zəiflik aradan qaldırılıb: LoongArch: rethook trampolinində percpu baza registri yaddaşa yazılmasın və bərpa edilməsin rethook trampolini giriş zamanı $r21 ($u0) - percpu bazasını öz freyminə yaddaşa yazır və çıxışda onu bərpa edir. Bu proses arasında rethook_trampoline_handler() funksiyası preempt_enable_notrace() vasitəsilə planlama (scheduling) həyata keçirə bilər. Əgər tapşırıq digər CPU-ya köçürülərsə, freymdəki $r21 köhnə CPU-nun percpu bazasını saxlayır və onun bərpası yeni CPU-da $r21-i korlayır. Növbəti istifadəçi->nüvə (user->kernel) keçidi $r21-i düzəltənə qədər bütün this_cpu_*() müraciətləri (runqueues, RCU per-CPU məlumatları, taymer tik proqramlaşdırılması, FPU sahibliyi) yanlış CPU-nun percpu sahəsinə yönəlir. kretprobe-un intensiv olduğu preemtible yükləmə altında bu, planlayıcı və taymer vəziyyətini korlaya bilər: scheduling-while-atomic xətaları, yanlış-CPU RCU xəbərdarlıqları, nohz_balance_exit_idle() daxilində WARN_ON_ONCE(rq != this_rq()) və sabit taymer heç vaxt yenidən aktivləşdirilmədən boş dövründə (idle loop) dayanan CPU-lar (hard lockup). Bu problem, VFS yolları üzərində kretprobe-lar və intensiv fayl dəyişiklikləri (OS quraşdırılması / unsquashfs) ilə Loongson-3A6000-də təkrar istehsal olunur. Konvensiyaya görə, nüvə rejimində $r21 hər zaman cari CPU-nun percpu bazasını saxlayır: istisna girişində SAVE_SOME() onu yalnız istifadəçi rejimindən gələndə yenidən yükləyir və RESTORE_SOME() onu yalnız istifadəçi rejiminə qayıdanda bərpa edir; kontekst-keçid yolu ona heç vaxt yazı yazmır. Buna görə də, trampolinin çıxışındakı canlı $r21 artıq doğrudur və arada heç nə onu qanuni şəkildə dəyişə bilməz (nüvənin C kodu qlobal registr dəyişəninə yazı yaza bilməz). Eyni çatışmazlıq v6.3 versiyasından etibarən rethook-dan əvvəlki kretprobe trampolinində də mövcud idi; rethook onu əvəz etdikdə bu xüsusiyyət ötürüldü. Burada həm yaddaşa yazma, həm də bərpa əməliyyatı ləğv edilir. Problemi həll etmək üçün yalnız bərpanın ləğvi kifayətdir, yaddaşa yazmanın ləğvi isə kodu səliqəli saxlamaq üçündür və onu təmizləməyə ehtiyac yoxdur.
Necə düzəltmək olar
- Linux Linuxa03b5e7483ad2c33ba5dd2adb8552e84bfee8fe2, 8f15e95b438bc6b3c9f23a33c9a0d0678ebd1dc8, 266ffc92e68593759adfe3d58f188773d32782c3, c048b0a3c0836c4b1bef4b51d355d27090bf6790, c3f2feace5e4f4b01b68b9f947b19adb4155c32e və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| Linux Linux | 3f5536860086d906b01ec5ed68cf50c7edcc40af ≤ v < a03b5e7483ad2c33ba5dd2adb8552e84bfee8fe2, 3f5536860086d906b01ec5ed68cf50c7edcc40af ≤ v < 8f15e95b438bc6b3c9f23a33c9a0d0678ebd1dc8, 3f5536860086d906b01ec5ed68cf50c7edcc40af ≤ v < 266ffc92e68593759adfe3d58f188773d32782c3, 3f5536860086d906b01ec5ed68cf50c7edcc40af ≤ v < c048b0a3c0836c4b1bef4b51d355d27090bf6790, 3f5536860086d906b01ec5ed68cf50c7edcc40af ≤ v < c3f2feace5e4f4b01b68b9f947b19adb4155c32e, 6.3 | a03b5e7483ad2c33ba5dd2adb8552e84bfee8fe2, 8f15e95b438bc6b3c9f23a33c9a0d0678ebd1dc8, 266ffc92e68593759adfe3d58f188773d32782c3, c048b0a3c0836c4b1bef4b51d355d27090bf6790, c3f2feace5e4f4b01b68b9f947b19adb4155c32e |
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.