CVE-2026-80734

Yüksek

Açıklama

Linux kernel içerisinde aşağıdaki güvenlik açığı giderilmiştir: btrfs: önbelleğe alınmış inode'lar için inode eşleme bayraklarını başlatın [HATA] 8K blok boyutu ve 4K sayfa boyutu ile generic/795 çalıştırıldığında, test her zaman başarısız olmakta ve folio boyutuyla ilgili bazı ASSERT() ifadelerini tetiklemektedir: 795 (241074): drop_caches: 3 assertion failed: IS_ALIGNED(start, blocksize) && IS_ALIGNED(end + 1, blocksize), in extent_io.c:1404 (blocksize=8192 root=262 ino=258 start=16826368 end=16830463 mapping min order=0) ------------[ cut here ]------------ kernel BUG at extent_io.c:1404! Oops: invalid opcode: 0000 [#1] SMP CPU: 8 UID: 0 PID: 241105 Comm: fsstress Tainted: G OE 7.2.0-rc5-custom+ #442 PREEMPT(full) f4bfb352566f3949f29c233ce6f735050a03b245 Tainted: [O]=OOT_MODULE, [E]=UNSIGNED_MODULE Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS unknown 02/02/2022 RIP: 0010:assert_folio_range.cold+0x3d/0x3f [btrfs] Call Trace: <TASK> btrfs_read_folio+0x9e/0x170 [btrfs 4cd1dd93b341b8ef766643f9512f4a86259567a3] prepare_one_folio.constprop.0+0x104/0x2a0 [btrfs 4cd1dd93b341b8ef766643f9512f4a86259567a3] btrfs_buffered_write+0x285/0xa50 [btrfs 4cd1dd93b341b8ef766643f9512f4a86259567a3] btrfs_do_write_iter+0x1aa/0x210 [btrfs 4cd1dd93b341b8ef766643f9512f4a86259567a3] iter_file_splice_write+0x31a/0x540 direct_splice_actor+0x53/0x170 splice_direct_to_actor+0xe9/0x240 do_splice_direct+0x76/0xb0 vfs_copy_file_range+0x1fd/0x630 __x64_sys_copy_file_range+0xf9/0x220 do_syscall_64+0xe1/0x790 entry_SYSCALL_64_after_hwframe+0x4b/0x53 </TASK> ---[ end trace 0000000000000000 ]--- ASSERT() ifadesinin kendisi daha sonraki bir yama ile eklenmiştir. Çökme, bu yeni hata ayıklama yaması mevcutken ve bu düzeltme uygulanmamışken tetiklenmektedir. [NEDEN] Yukarıdaki durumda, başlangıç değeri olan 16826368 uygun şekilde 8K hizalanmıştır ancak bitiş değeri (16830463 + 1) 8K hizalı değildir. Ayrıca, eşlemenin minimum folio sırası, 4K sayfa boyutu ve 8K blok boyutu için beklenen 1 yerine 0'dır. Bu durum, bazı inode'lar üzerinde btrfs_set_inode_mapping_order() fonksiyonunun çağrılmadığı anlamına gelir. Eksik btrfs_set_inode_mapping_order() çağrısı, şu olaylar aracılığıyla önbelleğe alınmış inode'lar için gerçekleşir: - Inode X için btrfs_create_new_inode() çağrılır. Bu işlem, VFS inode'u için minimum folio sırasını doğru şekilde ayarlar. - Inode X için btrfs_update_inode() çağrılır. Bu işlem, root->delayed_nodes xarray içinde bir delayed_node oluşturmak için btrfs_delayed_update_inode() fonksiyonunu çağırır. - Önbellek boşaltma/bellek baskısı nedeniyle bellek içi inode X tahliye edilir. Inode X tahliye edilmiş olsa da, delayed_node gelecekte yeniden kullanılmak üzere root->delayed_nodes içinde kalmaya devam eder. - Inode X için tekrar btrfs_iget() çağrılır. btrfs_iget() |- btrfs_iget_locked() | |- iget5_locked_rcu() | Btrfs için yeni bir vfs_inode oluşturur ve bunun eşlemesinin minimum sırası hala 0'dır. | |- btrfs_read_locked_inode() |- btrfs_fill_inode() | |- btrfs_get_delayed_node() | Önceki düğümü bulur ve yeni inode'u başlatmak için bu gecikmiş düğümü kullanır. | |- filled = true; |- if (filled) goto cache_index; btrfs_update_inode_mapping_flags() ve btrfs_set_inode_mapping_order() çağrılarını atlar. Böylece inode'un minimum folio sırası gerekli olan 1 yerine hala 0 olarak kalır. Sonuç olarak, daha sonraki bir sayfa önbelleği okuma işlemi, eşlemenin minimum folio sırası 1 değil de 0 olduğu için blok boyutundan daha küçük bir folio alır ve ardından ASSERT() işlemini tetikler. [DÜZELTME] btrfs_update_inode_mapping_flags() ve btrfs_set_inode_mapping_order() çağrıları cache_index etiketinin altına taşınmıştır; böylece önbelleğe alınmış bir inode olup olmadığına bakılmaksızın eşleme bayrakları ve minimum folio sırası her zaman ayarlanacaktır.

ÖnemYüksek
CVSS8.8
İstismar olasılığı—
ÜrünLinux
Yayın3 Eyl 2026
İlk görülme3 Eyl 2026

Nasıl düzeltilir

Güncelleyin
  • Linux Linuxe4d997a1ec1d0dbb72dde35a99fda1850fee6a53, e18b8236c57fcc67d793bfc866f4bb2581be9f72, 0d26249671171ab759cb4fdce673554a690fa655, 0ef349734a93227b45f65fc50a3311d1cc5f03e9, 6.12.114, 6.15 ya da sonraki bir sürüm

Etkilenen ürünler

ÜrünEtkilenen sürümlerDüzeltildiği sürüm
Linux Linux01b002151539a4c2b27bfff9af033329a9b659e7 ≤ v < e4d997a1ec1d0dbb72dde35a99fda1850fee6a53, ecde48a1a6b3256bd49db8780bf37556b157783c ≤ v < e18b8236c57fcc67d793bfc866f4bb2581be9f72, ecde48a1a6b3256bd49db8780bf37556b157783c ≤ v < 0d26249671171ab759cb4fdce673554a690fa655, ecde48a1a6b3256bd49db8780bf37556b157783c ≤ v < 0ef349734a93227b45f65fc50a3311d1cc5f03e9, ae584726e6eddf6cfbe49b3f4a78b3197716b6f8, 6.12.111 ≤ v < 6.12.114, 6.14.6 ≤ v < 6.15, 6.15e4d997a1ec1d0dbb72dde35a99fda1850fee6a53, e18b8236c57fcc67d793bfc866f4bb2581be9f72, 0d26249671171ab759cb4fdce673554a690fa655, 0ef349734a93227b45f65fc50a3311d1cc5f03e9, 6.12.114, 6.15

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.

CVE-2026-80734 · Linux · Dark Radar