CVE-2022-50730
Təsvir
Linux kernel-də aşağıdakı zəiflik aradan qaldırılmışdır: ext4: dioread_nolock ilə inode çıxarılarkən xəbərdarlığın qarşısının alınması Default dioread_nolock ilə inode çıxarılarkən, bəzi yeni ayrılmış çirkli blokların writeback prosesindən sonra yazılmamış ekstensləri çevirən kworker ilə yarış vəziyyəti (race condition) yarana bilər. O, yazılmamış ekstensləri yazılmışa çevirir, ekstenslər yuxarı səviyyəyə birləşdirilə və boş ekstens blokları yarana bilər, buna görə də bu inode I_FREEING olaraq işarələnsə belə, yenidən çirkli (dirty) kimi işarələnə bilər. Lakin ext4_evict_inode() funksiyasındakı inode->i_io_list yoxlaması və xəbərdarlığı bu künc halını nəzərə almırdı. Xoşbəxtlikdən, ext4_evict_inode() bu yoxlamadan əvvəl bütün ekstens çevrilmələrinin tamamlanmasını gözləyir, buna görə də bu, inode use-after-free probleminə yol açmayacaq, bu xəbərdarlıqdan başqa hər şey qaydasındadır. WARN_ON_ONCE əslində inode use-after-free problemlərini öncədən tapmaq üçün hazırlanmışdı, lakin cari dioread_nolock halını daxil etsək, o, çox faydalı olmayacaq, ona görə də bu yoxlamanı silməklə xəbərdarlığı düzəldirik. ====== WARNING: CPU: 7 PID: 1092 at fs/ext4/inode.c:227 ext4_evict_inode+0x875/0xc60 ... RIP: 0010:ext4_evict_inode+0x875/0xc60 ... Call Trace: <TASK> evict+0x11c/0x2b0 iput+0x236/0x3a0 do_unlinkat+0x1b4/0x490 __x64_sys_unlinkat+0x4c/0xb0 do_syscall_64+0x3b/0x90 entry_SYSCALL_64_after_hwframe+0x46/0xb0 RIP: 0033:0x7fa933c1115b ====== rm kworker ext4_end_io_end() vfs_unlink() ext4_unlink() ext4_convert_unwritten_io_end_vec() ext4_convert_unwritten_extents() ext4_map_blocks() ext4_ext_map_blocks() ext4_ext_try_to_merge_up() __mark_inode_dirty() check !I_FREEING locked_inode_to_wb_and_lock_list() iput() iput_final() evict() ext4_evict_inode() truncate_inode_pages_final() //wait release io_end inode_io_list_move_locked() ext4_release_io_end() trigger WARN_ON_ONCE()
Necə düzəltmək olar
- Linux Linuxbdc698ce91f232fd5eb11d2373e9f82f687314b8, 0d041b7251c13679a0f6c7926751ce1d8a7237c1, 3b893cc9a8d8b4e486a6639f5e107b56b7197d2e, b085fb43feede48ebf80ab7e2dd150c8d9902932, bc12ac98ea2e1b70adc6478c8b473a0003b659d3 və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| Linux Linux | ceff86fddae8748fe00d4f2d249cb02cae62ad84 ≤ v < bdc698ce91f232fd5eb11d2373e9f82f687314b8, ceff86fddae8748fe00d4f2d249cb02cae62ad84 ≤ v < 0d041b7251c13679a0f6c7926751ce1d8a7237c1, ceff86fddae8748fe00d4f2d249cb02cae62ad84 ≤ v < 3b893cc9a8d8b4e486a6639f5e107b56b7197d2e, ceff86fddae8748fe00d4f2d249cb02cae62ad84 ≤ v < b085fb43feede48ebf80ab7e2dd150c8d9902932, ceff86fddae8748fe00d4f2d249cb02cae62ad84 ≤ v < bc12ac98ea2e1b70adc6478c8b473a0003b659d3, 5.8 | bdc698ce91f232fd5eb11d2373e9f82f687314b8, 0d041b7251c13679a0f6c7926751ce1d8a7237c1, 3b893cc9a8d8b4e486a6639f5e107b56b7197d2e, b085fb43feede48ebf80ab7e2dd150c8d9902932, bc12ac98ea2e1b70adc6478c8b473a0003b659d3 |
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.