CVE-2022-48833

Orta

Açıklama

Linux çekirdeğinde aşağıdaki güvenlik açığı giderilmiştir: btrfs: günlük temizleme hatasından sonra ayırmayı durdururken ayrılmış bayt uyarısını atla c2e39305299f01 ("btrfs: yazma başarısız olduğunda extent tamponunun güncelliğini temizle") commit'i ve ardından gelen düzeltmesi olan 651740a5024117 ("btrfs: bir extent tamponunu okumaya çalışırken WRITE_ERR kontrolü yap") commit'inde yapılan son değişikliklerden sonra, bir işlem iptali gerçekleştiğinde artık hem hâlâ kirli olan extent tamponlarını hem de log ağacı extent tamponlarının alan rezervasyonlarını temizleyememe durumuyla karşılaşabiliyoruz. Bu durumun nedeni şudur: Bir log ağacı extent tamponu için geri yazma işlemi başarısız olursa, extent tamponundan EXTENT_BUFFER_UPTODATE biti temizlenmiş ve üzerine EXTENT_BUFFER_WRITE_ERR biti ayarlanmış olur. Daha sonra, ağaç üzerinde yineleme yapan free_log_tree() ile log ağacını serbest bırakmaya çalışırken; eğer bir extent tamponunda EXTENT_BUFFER_UPTODATE biti ayarlı değilse ve EXTENT_BUFFER_WRITE_ERR biti ayarlıysa, read_extent_buffer_pages() fonksiyonu -EIO döndürdüğü için bir düğümü veya yaprağı okumaya çalışırken -EIO hatası alabiliriz. Bu -EIO hatasının alınması, tüm ağaç üzerinde yineleme yapılamayacağı anlamına gelir ve işlemin hemen sonlandırılmasına neden olur. Bu durumda, ilgili blok grubu ve space_info nesnesindeki bir extent tamponu için ayrılmış alanı hiçbir zaman güncellemiyoruz. Bu olay gerçekleştiğinde, dosya sistemi ayırılırken (unmount) şu izler oluşmaktadır: [174957.284509] BTRFS: error (device dm-0) in cleanup_transaction:1913: errno=-5 IO failure [174957.286497] BTRFS: error (device dm-0) in free_log_tree:3420: errno=-5 IO failure [174957.399379] ------------[ cut here ]------------ [174957.402497] WARNING: CPU: 2 PID: 3206883 at fs/btrfs/block-group.c:127 btrfs_put_block_group+0x77/0xb0 [btrfs] [174957.407523] Modules linked in: btrfs overlay dm_zero (...) [174957.424917] CPU: 2 PID: 3206883 Comm: umount Tainted: G W 5.16.0-rc5-btrfs-next-109 #1 [174957.426689] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.14.0-0-g155821a1990b-prebuilt.qemu.org 04/01/2014 [174957.428716] RIP: 0010:btrfs_put_block_group+0x77/0xb0 [btrfs] [174957.429717] Code: 21 48 8b bd (...) [174957.432867] RSP: 0018:ffffb70d41cffdd0 EFLAGS: 00010206 [174957.433632] RAX: 0000000000000001 RBX: ffff8b09c3848000 RCX: ffff8b0758edd1c8 [174957.434689] RDX: 0000000000000001 RSI: ffffffffc0b467e7 RDI: ffff8b0758edd000 [174957.436068] RBP: ffff8b0758edd000 R08: 0000000000000000 R09: 0000000000000000 [174957.437114] R10: 0000000000000246 R11: 0000000000000000 R12: ffff8b09c3848148 [174957.438140] R13: ffff8b09c3848198 R14: ffff8b0758edd188 R15: dead000000000100 [174957.439317] FS: 00007f328fb82800(0000) GS:ffff8b0a2d200000(0000) knlGS:0000000000000000 [174957.440402] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [174957.441164] CR2: 00007fff13563e98 CR3: 0000000404f4e005 CR4: 0000000000370ee0 [174957.442117] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 [174957.443076] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 [174957.443948] Call Trace: [174957.444264] <TASK> [174957.444538] btrfs_free_block_groups+0x255/0x3c0 [btrfs] [174957.445238] close_ctree+0x301/0x357 [btrfs] [174957.445803] ? call_rcu+0x16c/0x290 [174957.446250] generic_shutdown_super+0x74/0x120 [174957.446832] kill_anon_super+0x14/0x30 [174957.447305] btrfs_kill_super+0x12/0x20 [btrfs] [174957.447890] deactivate_locked_super+0x31/0xa0 [174957.448440] cleanup_mnt+0x147/0x1c0 [174957.448888] task_work_run+0x5c/0xa0 [174957.449336] exit_to_user_mode_prepare+0x1e5/0x1f0 [174957.449934] syscall_exit_to_user_mode+0x16/0x40 [174957.450512] do_syscall_64+0x48/0xc0 [174957.450980] entry_SYSCALL_64_after_hwframe+0x44/0xae [174957.451605] RIP: 0033:0x7f328fdc4a97 [174957.452059] Code: 03 0c 00 f7 (...) [174957.454320] RSP: 002b:00007fff13564ec8 EFLAGS: 00000246 ORIG_RAX: 00000000000000a6 [174957.455262] RAX: 0000000000000000 RBX: 00007f328feea264 RCX: 00007f328fdc4a97 [174957.456131] RDX: 0000000000000000 RSI: 00000000000000 ---truncated---

ÖnemOrta
CVSS5.5
İstismar olasılığı—
ÜrünLinux Kernel
Yayın16 Tem 2024
İlk görülme16 Tem 2024

Nasıl düzeltilir

Güncelleyin
  • linux linux_kernel5.5, 5.11, 5.15.31, 5.16, 5.16.17, 5.17 ya da sonraki bir sürüm

Etkilenen ürünler

ÜrünEtkilenen sürümlerDüzeltildiği sürüm
linux linux_kernel5.4.165 ≤ v < 5.5, 5.10.85 ≤ v < 5.11, 5.15.8 ≤ v < 5.15.31, 5.15.11 ≤ v < 5.16, 5.16.1 ≤ v < 5.16.17, 5.18 ≤ v < 5.17, 5.16, 5.175.5, 5.11, 5.15.31, 5.16, 5.16.17, 5.17

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-2022-48833 · Linux Kernel · Dark Radar