CVE-2024-26868

Yüksek

Açıklama

Linux kernel içerisinde aşağıdaki güvenlik açığı giderilmiştir: nfs: nfs4_ff_layout_prepare_ds() başarısız olduğunda meydana gelen panic hatası düzeltildi Üretim ortamında şu panic hatası gözlemlenmiştir: BUG: kernel NULL pointer dereference, address: 0000000000000065 PGD 2f485f067 P4D 2f485f067 PUD 2cc5d8067 PMD 0 RIP: 0010:ff_layout_cancel_io+0x3a/0x90 [nfs_layout_flexfiles] Call Trace: <TASK> ? __die+0x78/0xc0 ? page_fault_oops+0x286/0x380 ? __rpc_execute+0x2c3/0x470 [sunrpc] ? rpc_new_task+0x42/0x1c0 [sunrpc] ? exc_page_fault+0x5d/0x110 ? asm_exc_page_fault+0x22/0x30 ? ff_layout_free_layoutreturn+0x110/0x110 [nfs_layout_flexfiles] ? ff_layout_cancel_io+0x3a/0x90 [nfs_layout_flexfiles] ? ff_layout_cancel_io+0x6f/0x90 [nfs_layout_flexfiles] pnfs_mark_matching_lsegs_return+0x1b0/0x360 [nfsv4] pnfs_error_mark_layout_for_return+0x9e/0x110 [nfsv4] ? ff_layout_send_layouterror+0x50/0x160 [nfs_layout_flexfiles] nfs4_ff_layout_prepare_ds+0x11f/0x290 [nfs_layout_flexfiles] ff_layout_pg_init_write+0xf0/0x1f0 [nfs_layout_flexfiles] __nfs_pageio_add_request+0x154/0x6c0 [nfs] nfs_pageio_add_request+0x26b/0x380 [nfs] nfs_do_writepage+0x111/0x1e0 [nfs] nfs_writepages_callback+0xf/0x30 [nfs] write_cache_pages+0x17f/0x380 ? nfs_pageio_init_write+0x50/0x50 [nfs] ? nfs_writepages+0x6d/0x210 [nfs] ? nfs_writepages+0x6d/0x210 [nfs] nfs_writepages+0x125/0x210 [nfs] do_writepages+0x67/0x220 ? generic_perform_write+0x14b/0x210 filemap_fdatawrite_wbc+0x5b/0x80 file_write_and_wait_range+0x6d/0xc0 nfs_file_fsync+0x81/0x170 [nfs] ? nfs_file_mmap+0x60/0x60 [nfs] __x64_sys_fsync+0x53/0x90 do_syscall_64+0x3d/0x90 entry_SYSCALL_64_after_hwframe+0x46/0xb0 drgn ile çekirdek incelendiğinde şunlar tespit edilmiştir: >>> prog.crashed_thread().stack_trace()[0] #0 at 0xffffffffa079657a (ff_layout_cancel_io+0x3a/0x84) in ff_layout_cancel_io at fs/nfs/flexfilelayout/flexfilelayout.c:2021:27 >>> prog.crashed_thread().stack_trace()[0]['idx'] (u32)1 >>> prog.crashed_thread().stack_trace()[0]['flseg'].mirror_array[1].mirror_ds (struct nfs4_ff_layout_ds *)0xffffffffffffffed Yığın izleme sonucundan açıkça görüldüğü üzere, mirror_ds başlatılırken hata verebilen nfs4_ff_layout_prepare_ds() fonksiyonu çağrılmakta ve ardından temizleme işlemine geçilmektedir; ancak buradaki kontrol yalnızca if (!mirror->mirror_ds) şeklindedir. Bu durum, tam olarak bu senaryonun önüne geçmek için if (IS_ERR_OR_NULL(mirror_ds)) kullanan diğer mirror_ds kullanıcılarıyla tutarsızdır. Hata alındığında panic oluşmaması için ff_layout_cancel_io() fonksiyonundaki bu durum düzeltilmiştir. Ayrıca mirror_ds kontrollerinin yapıldığı tüm diğer örnekler rastgele kontrol edilmiş ve sadece geçerli olduğu bilindiğinde koşulsuz olarak referans verildiği, geri kalan her yerde doğru kontrollerin yapıldığı görülmüştür.

ÖnemYüksek
CVSS7.5
İstismar olasılığı—
ÜrünLinux Kernel
Yayın17 Nis 2024
İlk görülme17 Nis 2024

Nasıl düzeltilir

Güncelleyin
  • linux linux_kernel6.1.83, 6.6.23, 6.7.11, 6.8.2 ya da sonraki bir sürüm

Etkilenen ürünler

ÜrünEtkilenen sürümlerDüzeltildiği sürüm
linux linux_kernel6.1 ≤ v < 6.1.83, 6.2 ≤ v < 6.6.23, 6.7 ≤ v < 6.7.11, 6.8 ≤ v < 6.8.26.1.83, 6.6.23, 6.7.11, 6.8.2

Sürümünüzü kontrol edin

Ürünü seçin ve kullandığınız sürümü yazın; sürümün etkilenen aralıkta olup olmadığını görün.

Intelligence 360 paketinde

Attack Surface Management

Alan adlarınıza bağlı varlıkları, bu varlıklarda çalışan teknolojileri ve bilinen zafiyetleri tek listede görün.