CVE-2026-68132
Açıklama
Linux kernel içerisinde aşağıdaki güvenlik açığı giderilmiştir: super: dondurulmuş blok aygıtlarındaki acil çözülme (emergency thaw) kilitlenmesi düzeltildi do_thaw_all_callback(), sb->s_umount kilidini özel olarak tutarken bdev_thaw() fonksiyonunu çağırır. Eğer blok aygıtı bdev_freeze() aracılığıyla dondurulmuşsa, son blok katmanı dondurma referansının düşürülmesi fs_bdev_thaw() fonksiyonunu çağırır ve bu da s_umount kilidini yeniden almaya çalışır: do_thaw_all_callback(sb) super_lock_excl(sb) # sb->s_umount tutuluyor bdev_thaw(sb->s_bdev) mutex_lock(&bdev->bd_fsfreeze_mutex) # bd_fsfreeze_count 1 -> 0'a düşer bd_holder_ops->thaw == fs_bdev_thaw get_bdev_super(bdev) bdev_super_lock(bdev, true) super_lock(sb, true) down_write(&sb->s_umount) # aynı görev: kilitlenme (deadlock) Acil çözülme işçisi, hem s_umount hem de bd_fsfreeze_mutex kilitlerini tutarak kendi üzerinde kilitlenir. Bu durum, söz konusu dosya sistemi ve blok aygıtının sonraki tüm ayırmaları (unmount), dondurmaları veya çözülmelerini bozar. [ 81.878470] sysrq: Show Blocked State [ 81.880140] task:kworker/0:1 state:D stack:0 pid:11 tgid:11 ppid:2 task_flags:0x4208060 flags:0x00080000 [ 81.884876] Workqueue: events do_thaw_all [ 81.886656] Call Trace: [ 81.887759] <TASK> [ 81.888763] __schedule+0x579/0x1420 [ 81.890372] schedule+0x3a/0x100 [ 81.891794] schedule_preempt_disabled+0x15/0x30 [ 81.893848] rwsem_down_write_slowpath+0x1ea/0x900 [ 81.895191] ? __pfx_do_thaw_all_callback+0x10/0x10 [ 81.896528] down_write+0xbd/0xc0 [ 81.897505] super_lock+0x91/0x180 [ 81.898457] ? __mutex_lock+0xa99/0x1140 [ 81.900748] ? __mutex_unlock_slowpath+0x1f/0x400 [ 81.902069] bdev_super_lock+0x5b/0x150 [ 81.903132] get_bdev_super+0x10/0x60 [ 81.904042] fs_bdev_thaw+0x23/0xf0 [ 81.904755] bdev_thaw+0x82/0x100 [ 81.905484] do_thaw_all_callback+0x2c/0x50 [ 81.906298] __iterate_supers+0x5d/0x130 [ 81.907067] do_thaw_all+0x20/0x40 [ 81.907739] process_one_work+0x206/0x5e0 [ 81.908545] worker_thread+0x1e2/0x3c0 [ 81.909339] ? __pfx_worker_thread+0x10/0x10 [ 81.910171] kthread+0xf4/0x130 [ 81.910799] ? __pfx_kthread+0x10/0x10 [ 81.911528] ret_from_fork+0x2e2/0x3b0 [ 81.912259] ? __pfx_kthread+0x10/0x10 [ 81.913010] ret_from_fork_asm+0x1a/0x30 [ 81.913806] </TASK> bdev_super_lock() fonksiyonu, lockdep_assert_not_held(&sb->s_umount) ile ihlal edilen bu gereksinimi belgelemektedir. bd_fsfreeze_mutex kilidinin s_umount altında alınması, bdev_{freeze,thaw}() tarafından belirlenen bd_fsfreeze_mutex ve s_umount sıralamasını tersine çevirir; bu nedenle özyinelemeli yol tetiklenmese bile eşzamanlı bir blok katmanı dondurma işlemi sırasında ABBA tipi kilitlenmeye neden olabilir. Bu sorun, bdev_thaw() döngüsü boyunca s_umount kilidi hiç tutulmayarak giderilmiştir. Bunun yerine, filesystems_freeze_callback() fonksiyonunda olduğu gibi süperblok aktif bir referansla sabitlenir. Aktif referans, süperbloğun kapatılmasını önler ve böylece s_umount tutulmadan ->s_bdev geçerli kalmaya devam eder. Blok katmanında tutulan dondurma durumu, normal bir çözülmede olduğu gibi fs_bdev_thaw() tarafından FREEZE_MAY_NEST | FREEZE_HOLDER_USERSPACE ile kaldırılır ve thaw_super_locked() dosya sistemi düzeyindeki dondurmaları daha önce olduğu gibi yönetir. Acil çözülme yolu uzun zamandır şu veya benzeri şekilde kilitlenmekteydi ancak mevcut özel tutma yapısı, thaw_bdev()'ın zaten do_thaw_all_callback() tarafından tutulan s_umount ile thaw_super() ile sonuçlandığı [1] numaralı commite dayanmaktadır.
Nasıl düzeltilir
- Linux Linux96248aeddde794227a49af1a332a1e21b3c15d56, c202aa03388fd1889b7aa4f7d677c49e22cd9700, 2a1127c1c58b4f15a93f2fd56ff7c2c3d611d5c5, 05536cad35f27b520d4b6f0e57c8cc5bfb6b0502, 99719b5da9320ed344daee87d9c73d321a98f252, 63d78b546eefc38ad9898dc839bfc94811ede547, 4c483644d1a7709efe7d1be7dbf88cf4008a7864, 749d7aa0377aae32af8c0a4ad43371e7bf830ab5 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| Linux Linux | 08fdc8a0138afaf324296a342f32ad26ec465e43 ≤ v < 96248aeddde794227a49af1a332a1e21b3c15d56, 08fdc8a0138afaf324296a342f32ad26ec465e43 ≤ v < c202aa03388fd1889b7aa4f7d677c49e22cd9700, 08fdc8a0138afaf324296a342f32ad26ec465e43 ≤ v < 2a1127c1c58b4f15a93f2fd56ff7c2c3d611d5c5, 08fdc8a0138afaf324296a342f32ad26ec465e43 ≤ v < 05536cad35f27b520d4b6f0e57c8cc5bfb6b0502, 08fdc8a0138afaf324296a342f32ad26ec465e43 ≤ v < 99719b5da9320ed344daee87d9c73d321a98f252, 08fdc8a0138afaf324296a342f32ad26ec465e43 ≤ v < 63d78b546eefc38ad9898dc839bfc94811ede547, 08fdc8a0138afaf324296a342f32ad26ec465e43 ≤ v < 4c483644d1a7709efe7d1be7dbf88cf4008a7864, 08fdc8a0138afaf324296a342f32ad26ec465e43 ≤ v < 749d7aa0377aae32af8c0a4ad43371e7bf830ab5, 4.17 | 96248aeddde794227a49af1a332a1e21b3c15d56, c202aa03388fd1889b7aa4f7d677c49e22cd9700, 2a1127c1c58b4f15a93f2fd56ff7c2c3d611d5c5, 05536cad35f27b520d4b6f0e57c8cc5bfb6b0502, 99719b5da9320ed344daee87d9c73d321a98f252, 63d78b546eefc38ad9898dc839bfc94811ede547, 4c483644d1a7709efe7d1be7dbf88cf4008a7864, 749d7aa0377aae32af8c0a4ad43371e7bf830ab5 |
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.