CVE-2023-52897

Orta

Açıklama

Linux kernel'de aşağıdaki güvenlik açığı giderilmiştir: btrfs: qgroup: old_roots doldurulmamış kayıtlar için uyarı verme [BUG] Posta listesinden gelen bazı raporlara göre, v6.1 çekirdeğinden itibaren btrfs_qgroup_account_extent() içerisindeki WARN_ON(), yeniden tarama sırasında tetiklenmektedir: WARNING: CPU: 3 PID: 6424 at fs/btrfs/qgroup.c:2756 btrfs_qgroup_account_extents+0x1ae/0x260 [btrfs] CPU: 3 PID: 6424 Comm: snapperd Tainted: P OE 6.1.2-1-default #1 openSUSE Tumbleweed 05c7a1b1b61d5627475528f71f50444637b5aad7 RIP: 0010:btrfs_qgroup_account_extents+0x1ae/0x260 [btrfs] Call Trace: <TASK> btrfs_commit_transaction+0x30c/0xb40 [btrfs c39c9c546c241c593f03bd6d5f39ea1b676250f6] ? start_transaction+0xc3/0x5b0 [btrfs c39c9c546c241c593f03bd6d5f39ea1b676250f6] btrfs_qgroup_rescan+0x42/0xc0 [btrfs c39c9c546c241c593f03bd6d5f39ea1b676250f6] btrfs_ioctl+0x1ab9/0x25c0 [btrfs c39c9c546c241c593f03bd6d5f39ea1b676250f6] ? __rseq_handle_notify_resume+0xa9/0x4a0 ? mntput_no_expire+0x4a/0x240 ? __seccomp_filter+0x319/0x4d0 __x64_sys_ioctl+0x90/0xd0 do_syscall_64+0x5b/0x80 ? syscall_exit_to_user_mode+0x17/0x40 ? do_syscall_64+0x67/0x80 entry_SYSCALL_64_after_hwframe+0x63/0xcd RIP: 0033:0x7fd9b790d9bf </TASK> [NEDEN] e15e9f43c7ca ("btrfs: introduce BTRFS_QGROUP_RUNTIME_FLAG_NO_ACCOUNTING to skip qgroup accounting") commit'inden beri, eğer qgroup zaten tutarsız bir durumdaysa, zaman alan backref yürütme işlemi artık yapılmamaktadır. Bu durum, bazı qgroup kayıtlarının geçerli bir old_roots ulist olmadan kalmasına neden olabilir. Normalde bu sorun teşkil etmez çünkü NO_ACCOUNTING bayrağı ayarlıysa btrfs_qgroup_account_extents() bu kayıtları da atlayacaktır. Ancak, NO_ACCOUNTING bayrağının ayarlı olduğu ve old_roots ulist'i olmayan bazı qgroup_record kayıtlarının eklendiği, ancak ardından kullanıcının bir qgroup yeniden taramasını tetiklediği küçük bir pencere bulunmaktadır. btrfs_qgroup_rescan() sırasında önce NO_ACCOUNTING bayrağı temizlenir, ardından mevcut işlem onaylanır (commit). old_roots = NULL olan bir qgroup_record kaydı olduğundan, btrfs_qgroup_account_extents() sırasında WARN_ON() tetiklenir. [ÇÖZÜM] Maalesef NO_ACCOUNTING bayrağının getirilmesiyle birlikte, her qgroup_record kaydının old_roots kısmının doldurulmuş olacağı varsayımı artık doğru değildir. Hatalı uyarılar düzeltilmiş ve WARN_ON() kaldırılmıştır.

ÖnemOrta
CVSS4.7
İstismar olasılığı—
ÜrünLinux Kernel
Yayın21 Ağu 2024
İlk görülme21 Ağu 2024

Nasıl düzeltilir

Güncelleyin
  • linux linux_kernel6.1.8 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.8, 6.26.1.8

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.