CVE-2024-40943

Yüksək

Təsvir

Linux kernel-də aşağıdakı zəiflik aradan qaldırılmışdır: ocfs2: hole punching və AIO+DIO arasındakı yarış şəraitinin (race condition) düzəldilməsi "ocfs2: return real error code in ocfs2_dio_wr_get_block" commit-indən sonra, fstests/generic/300 testi həmişə uğursuz olduqdan, bəzən uğursuz olan hala çevrilmişdir: ======================================================================== [ 473.293420 ] run fstests generic/300 [ 475.296983 ] JBD2: Ignoring recovery information on journal [ 475.302473 ] ocfs2: Mounting device (253,1) on (node local, slot 0) with ordered data mode. [ 494.290998 ] OCFS2: ERROR (device dm-1): ocfs2_change_extent_flag: Owner 5668 has an extent at cpos 78723 which can no longer be found [ 494.291609 ] On-disk corruption discovered. Please run fsck.ocfs2 once the filesystem is unmounted. [ 494.292018 ] OCFS2: File system is now read-only. [ 494.292224 ] (kworker/19:11,2628,19):ocfs2_mark_extent_written:5272 ERROR: status = -30 [ 494.292602 ] (kworker/19:11,2628,19):ocfs2_dio_end_io_write:2374 ERROR: status = -3 fio: io_u error on file /mnt/scratch/racer: Read-only file system: write offset=460849152, buflen=131072 ========================================================================= __blockdev_direct_IO funksiyasında yazılmamış extent-ləri siyahıya əlavə etmək üçün ocfs2_dio_wr_get_block çağırılır. Extent-lər həmçinin ocfs2_write_begin_nolock funksiyasında extent ağacına daxil edilir. Daha sonra başqa bir thread, yazılmamış extent-lərdən birində boşluq yaratmaq (punch a hole) üçün fallocate funksiyasını çağırır. Cpos-dakı extent ocfs2_remove_extent() tərəfindən silindi. IO işçi thread-nin sonunda ocfs2_search_extent_list cpos-da belə bir extent-in olmadığını aşkar etdi. T1 T2 T3 inode lock ... insert extents ... inode unlock ocfs2_fallocate __ocfs2_change_file_space inode lock lock ip_alloc_sem ocfs2_remove_inode_range inode ocfs2_remove_btree_range ocfs2_remove_extent ^---remove the extent at cpos 78723 ... unlock ip_alloc_sem inode unlock ocfs2_dio_end_io ocfs2_dio_end_io_write lock ip_alloc_sem ocfs2_mark_extent_written ocfs2_change_extent_flag ocfs2_search_extent_list ^---failed to find extent ... unlock ip_alloc_sem Əksər fayl sistemlərində fallocate, AIO+DIO ilə eyni vaxtda icra olunmağa uyğun deyil, buna görə də ext4-də olduğu kimi, fallocate/punch_hole-dan əvvəl bütün DIO proseslərini gözləmək mexanizmi əlavə edilərək problem həll edilmişdir.

CiddilikYüksək
CVSS7.8
İstismar ehtimalı—
MəhsulLinux Kernel
Dərc12 iyl 2024
İlk görülmə12 iyl 2024

Necə düzəltmək olar

Yeniləyin
  • linux linux_kernel4.19.317, 5.4.279, 5.10.221, 5.15.162, 6.1.95, 6.6.35, 6.9.6 və ya daha yeni versiya

Təsirlənən məhsullar

MəhsulTəsirlənən versiyalarDüzəldildiyi versiya
linux linux_kernel2.6.23 ≤ v < 4.19.317, 4.20 ≤ v < 5.4.279, 5.5 ≤ v < 5.10.221, 5.11 ≤ v < 5.15.162, 5.16 ≤ v < 6.1.95, 6.2 ≤ v < 6.6.35, 6.7 ≤ v < 6.9.64.19.317, 5.4.279, 5.10.221, 5.15.162, 6.1.95, 6.6.35, 6.9.6

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