CVE-2023-52897
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.
Nasıl düzeltilir
- linux linux_kernel6.1.8 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| linux linux_kernel | 6.1 ≤ v < 6.1.8, 6.2 | 6.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.
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.