CVE-2026-72353
Açıklama
Linux kernel'da aşağıdaki güvenlik açığı giderilmiştir: ntfs: fallocate işleminde bayat runlist öğesi referansının önlenmesi ntfs_attr_fallocate(), ni->runlist.lock altında mevcut runlist öğesini arayarak başlatılmış boyut içinde boşluklar ve gecikmeli tahsisler ayırır. Döndürülen struct runlist_element, ni->runlist.rl içerisine yönlendirilmiş ödünç alınmış bir işaretçidir. Bir yazıcı, okuma kilidi kaldırıldıktan sonra bu diziyi değiştirebilir ve serbest bırakabilir; böylece rl->lcn, rl->length ve rl->vcn değerlerinin daha sonra okunması, serbest bırakılmış belleğe erişime neden olabilir. Hatalı senaryo iki yol içermektedir ve her sütun o yoldaki sırayı göstermektedir: ntfs_attr_fallocate(): 1. ni->runlist.lock için okuma kilidini al. 2. ntfs_attr_find_vcn_nolock() üzerinden rl'yi al. 3. ni->runlist.lock kilidini bırak. 4. rl->lcn, rl->length ve rl->vcn değerlerini oku. mmap page_mkwrite: 1. ntfs_filemap_page_mkwrite() fonksiyonuna gir. 2. __ntfs_write_iomap_begin() ve ntfs_attr_map_cluster() aşamalarına ulaş. 3. Tahsis durumunu ntfs_runlists_merge() ile birleştir. 4. Eski diziyi serbest bırakarak ntfs_rl_realloc() içerisinde ni->runlist.rl'yi yeniden tahsis et. Doğrulama işlemi şu çekirdek raporunu yeniden üretmiştir: BUG: KASAN: slab-use-after-free in ntfs_attr_fallocate+0xbb8/0xd00 Çağrı İzleme (Call Trace): <TASK> dump_stack_lvl+0x66/0xa0 print_report+0xce/0x630 ? ntfs_attr_fallocate+0xbb8/0xd00 ? srso_alias_return_thunk+0x5/0xfbef5 ? __virt_addr_valid+0x20d/0x410 ? ntfs_attr_fallocate+0xbb8/0xd00 kasan_report+0xe0/0x110 ? ntfs_attr_fallocate+0xbb8/0xd00 ntfs_attr_fallocate+0xbb8/0xd00 ? lock_acquire+0x2b8/0x2f0 ? __pfx_ntfs_attr_fallocate+0x10/0x10 ? 0xffffffffc0000095 ? down_write+0x10d/0x1e0 ntfs_fallocate+0x5c9/0x1d00 ? __pfx_ntfs_fallocate+0x10/0x10 ? srso_alias_return_thunk+0x5/0xfbef5 ? lock_acquire+0x2b8/0x2f0 ? srso_alias_return_thunk+0x5/0xfbef5 ? selinux_file_permission+0x3a7/0x510 vfs_fallocate+0x29d/0xd30 __x64_sys_fallocate+0xc7/0x150 ? do_syscall_64+0x81/0x6a0 do_syscall_64+0x115/0x6a0 entry_SYSCALL_64_after_hwframe+0x77/0x7f Görev 410 tarafından tahsis edildi: kasan_save_stack+0x33/0x60 kasan_save_track+0x14/0x30 __kasan_kmalloc+0xaa/0xb0 __kvmalloc_node_noprof+0x353/0x920 ntfs_rl_realloc+0x3f/0x110 ntfs_runlists_merge+0xaa3/0x3010 ntfs_attr_map_cluster+0x4e5/0xf80 ntfs_attr_fallocate+0x53f/0xd00 ntfs_fallocate+0x5c9/0x1d00 vfs_fallocate+0x29d/0xd30 __x64_sys_fallocate+0xc7/0x150 do_syscall_64+0x115/0x6a0 entry_SYSCALL_64_after_hwframe+0x77/0x7f Görev 424 tarafından serbest bırakıldı: kasan_save_stack+0x33/0x60 kasan_save_track+0x14/0x30 kasan_save_free_info+0x3b/0x60 __kasan_slab_free+0x5f/0x80 kfree+0x307/0x580 ntfs_rl_realloc+0x6f/0x110 ntfs_runlists_merge+0x7b1/0x3010 ntfs_attr_map_cluster+0x4e5/0xf80 __ntfs_write_iomap_begin+0x8cd/0x2280 iomap_iter+0x6de/0x11e0 iomap_page_mkwrite+0x391/0x650 ntfs_filemap_page_mkwrite+0x1ac/0x400 do_page_mkwrite+0x15c/0x280 __handle_mm_fault+0xd6d/0x1ca0 handle_mm_fault+0x19c/0x470 do_user_addr_fault+0x23b/0x9c0 exc_page_fault+0x5c/0xc0 asm_exc_page_fault+0x26/0x30 Bu sorun, gerekli runlist alanları henüz okuma kilidi tutulurken kopyalanarak ve kilit açıldıktan sonra yalnızca bu skaler anlık görüntüler kullanılarak düzeltilmiştir. Anlık görüntüden sonra, ntfs_attr_map_cluster() aralığın zaten eşlendiğini tespit edebilir ve balloc=false döndürebilir. Yazma iomap yoluyla uyumlu olmak ve yeni tahsis edilen boşlukların sıfırlanması davranışını korumak için ntfs_dio_zero_range() yalnızca yeni kümeler tahsis edildiğinde çağrılır.
Nasıl düzeltilir
- Linux Linux3dd3e43f17cda174009a51fe668046ed7afef46a, 88496c4ac5a6ade75619f4b1015706a8b924d50a ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| Linux Linux | 495e90fa334828d4119061e2726af51d0a0fb4ed ≤ v < 3dd3e43f17cda174009a51fe668046ed7afef46a, 495e90fa334828d4119061e2726af51d0a0fb4ed ≤ v < 88496c4ac5a6ade75619f4b1015706a8b924d50a, 7.1 | 3dd3e43f17cda174009a51fe668046ed7afef46a, 88496c4ac5a6ade75619f4b1015706a8b924d50a |
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.
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.