CVE-2026-89646
Təsvir
Linux nüvəsində aşağıdakı zəiflik aradan qaldırılmışdır: ceph: umount zamanı writeback ləğvinə görə sızan inode istinadının düzəldilməsi ceph_dirty_folio() hər bir yeni çirkləndirilmiş (dirtied) folio üçün wrbuffer iddiası götürür: o, i_wrbuffer_ref göstəricisini artırır (0->1 keçidi zamanı ihold() çağırılır) və snap_context-i folio->private hissəsinə əlavə edir. Bu iddia yalnız ceph_put_wrbuffer_cap_refs() tərəfindən buraxılır ki, bu da təslim edilmiş yazma əməliyyatı üçün writepages_finish() funksiyasından işə düşür. ceph_submit_write() funksiyasında, əgər ceph_inc_osd_stopping_blocker() uğursuz olarsa — bu, umount zamanı baş verir — sorğu təslim edilməzdən əvvəl ləğv edilir: artıq toplanmış foliolarda yalnız yenidən çirklənmə (redirty) və kilidin açılması həyata keçirilir, buna görə də writepages_finish() heç vaxt işləmir və iddia sızır. redirty_page_for_writepage() -> folio_redirty_for_writepage() -> filemap_dirty_folio() birbaşa PG_dirty təyin edir və ->dirty_folio vasitəsilə keçmir, buna görə də onu balanslaşdırmaq üçün ceph_dirty_folio() yenidən çağırılmır. Sonrakı hər bir writeback əməliyyatı da osd_stopping_blocker səbəbindən uğursuz olduğu üçün i_wrbuffer_ref heç vaxt 0-a qayıtmır, ihold() heç vaxt buraxılmır və inode yaddaşdan silinə bilmir: VFS: Busy inodes after unmount of ceph kernel BUG at fs/super.c:650! Yenidən çirkləndirmədən əvvəl, ləğv yolunda ceph_undo_wrbuffer_claim() vasitəsilə yetim qalmış iddianı buraxın: snap_context-i ayırın, wrbuffer istinadını buraxın (beləliklə i_wrbuffer_ref 0-a çatacaq və inode üzərində iput() çağırılacaq) və snap_context istinadını buraxın — yəni, heç vaxt təslim edilməmiş bu foliolara görə writepages_finish() funksiyasının edəcəyi işi yerinə yetirin. Yalnız locked_pages girişləri geri alınır; fbatch daxilində olan foliolar bu çağırışla heç vaxt çirkli statusundan təmizlənməyib (folio_clear_dirty_for_io() mülkiyyət transfer nöqtəsidir və uğurlu köçürmə fbatch slotunu NULL edir), buna görə də onlar bu çağırışın sahib olduğu heç bir iddiaya malik deyillər.
Necə düzəltmək olar
- Linux Linuxec32015a955c5d326c5e26610edfdcccd52f2314, ac7a5a5385762df458d10cccc086a4e079be7409, c25aee9c630fb86f98d79eccb75765067079b972 və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| Linux Linux | fd7449d937e7fb3144770592927cf452bf66dbd3 ≤ v < ec32015a955c5d326c5e26610edfdcccd52f2314, fd7449d937e7fb3144770592927cf452bf66dbd3 ≤ v < ac7a5a5385762df458d10cccc086a4e079be7409, fd7449d937e7fb3144770592927cf452bf66dbd3 ≤ v < c25aee9c630fb86f98d79eccb75765067079b972, 6.15 | ec32015a955c5d326c5e26610edfdcccd52f2314, ac7a5a5385762df458d10cccc086a4e079be7409, c25aee9c630fb86f98d79eccb75765067079b972 |
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.