CVE-2025-68821
Açıklama
Linux kernel içerisinde aşağıdaki güvenlik açığı giderilmiştir: fuse: readahead geri kazanım kilitlenmesi düzeltildi e26ee4efbc79 ("fuse: ff->release_args yalnızca release gerekliyse tahsis et") numaralı commit, sunucu open işlemini uygulamıyorsa ff->release_args tahsisini atlar. Ancak bunu yaparken, fuse_prepare_release() artık inode üzerindeki referansı almayı atlamaktadır; bu durum, devam eden readahead istekleri varken bir inode'un dcache üzerinden tahliye edilmesini mümkün kılar. Sunucu, readahead isteğine hizmet ederken geri kazanımı tetiklerse ve geri kazanım işlemi önceden okunan dosyanın inode'unu tahliye etmeye çalışırsa bu durum bir kilitlenmeye (deadlock) neden olur. Folio, readahead sırasında kilitli olduğundan, geri kazanım işlemi fuse inode'unu tahliye ettiğinde ve fuse_evict_inode() inode ile ilişkili tüm folioları sayfa önbelleğinden kaldırmaya çalıştığında (truncate_inode_pages_range()), geri kazanım işlemi kilidi bekleyerek sonsuza kadar bloklanacaktır; çünkü readahead, kendisi geri kazanım işleminde bloklandığı için kilidi serbest bırakamaz: >>> stack_trace(1504735) folio_wait_bit_common (mm/filemap.c:1308:4) folio_lock (./include/linux/pagemap.h:1052:3) truncate_inode_pages_range (mm/truncate.c:336:10) fuse_evict_inode (fs/fuse/inode.c:161:2) evict (fs/inode.c:704:3) dentry_unlink_inode (fs/dcache.c:412:3) __dentry_kill (fs/dcache.c:615:3) shrink_kill (fs/dcache.c:1060:12) shrink_dentry_list (fs/dcache.c:1087:3) prune_dcache_sb (fs/dcache.c:1168:2) super_cache_scan (fs/super.c:221:10) do_shrink_slab (mm/shrinker.c:435:9) shrink_slab (mm/shrinker.c:626:10) shrink_node (mm/vmscan.c:5951:2) shrink_zones (mm/vmscan.c:6195:3) do_try_to_free_pages (mm/vmscan.c:6257:3) do_swap_page (mm/memory.c:4136:11) handle_pte_fault (mm/memory.c:5562:10) handle_mm_fault (mm/memory.c:5870:9) do_user_addr_fault (arch/x86/mm/fault.c:1338:10) handle_page_fault (arch/x86/mm/fault.c:1481:3) exc_page_fault (arch/x86/mm/fault.c:1539:2) asm_exc_page_fault+0x22/0x27 Bu kilitlenme durumu, sunucu open işlemini uygulamasa bile dosyayı release için hazırlarken ff->release_args tahsis edilip inode üzerindeki referans alınarak düzeltilmiştir. Inode referansı, fuse dosyası üzerindeki son referans kaldırıldığında düşürülecektir (bkz. fuse_file_put() -> fuse_release_end()).
Nasıl düzeltilir
- Linux Linuxcbbf3f1bb9f834bb2acbb61ddca74363456e19cd, 4703bc0e8cd3409acb1476a70cb5b7ff943cf39a, cf74785c00b8b1c0c4a9dd74bfa9c22d62e2d99f, fbba8b00bbe4e4f958a2b0654cc1219a7e6597f6, e0d6de83a4cc22bbac72713f3a58121af36cc411, bd5603eaae0aabf527bfb3ce1bb07e979ce5bd50, 5.15.198, 6.1.160, 6.6.120 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| Linux Linux | a39f70d63f4373a598820d9491719e44cd60afe9 ≤ v < cbbf3f1bb9f834bb2acbb61ddca74363456e19cd, 7d38aa079ed859b73f4460aab89c7619b04963b8 ≤ v < 4703bc0e8cd3409acb1476a70cb5b7ff943cf39a, c7ec75f3cbf73bd46f479f7d6942585f765715da ≤ v < cf74785c00b8b1c0c4a9dd74bfa9c22d62e2d99f, e26ee4efbc79610b20e7abe9d96c87f33dacc1ff ≤ v < fbba8b00bbe4e4f958a2b0654cc1219a7e6597f6, e26ee4efbc79610b20e7abe9d96c87f33dacc1ff ≤ v < e0d6de83a4cc22bbac72713f3a58121af36cc411, e26ee4efbc79610b20e7abe9d96c87f33dacc1ff ≤ v < bd5603eaae0aabf527bfb3ce1bb07e979ce5bd50, 5.15.196 ≤ v < 5.15.198, 6.1.158 ≤ v < 6.1.160, 6.6.115 ≤ v < 6.6.120, 6.9 | cbbf3f1bb9f834bb2acbb61ddca74363456e19cd, 4703bc0e8cd3409acb1476a70cb5b7ff943cf39a, cf74785c00b8b1c0c4a9dd74bfa9c22d62e2d99f, fbba8b00bbe4e4f958a2b0654cc1219a7e6597f6, e0d6de83a4cc22bbac72713f3a58121af36cc411, bd5603eaae0aabf527bfb3ce1bb07e979ce5bd50, 5.15.198, 6.1.160, 6.6.120 |
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.