CVE-2026-74572
Açıklama
Linux çekirdeğinde aşağıdaki güvenlik açığı giderilmiştir: btrfs: zoned: meta veri geri yazma ile işlem commit'i arasındaki kilitlenmeyi düzelt Zoned bir dosya sisteminde meta veri extent buffer'ları yazılırken, btree_writepages() tüm geri yazma döngüsü boyunca fs_info->zoned_meta_io_lock kilidini tutar; buna btrfs_check_meta_write_pointer() -> check_bg_is_active() çağrısı da dahildir. Tree-log block group için check_bg_is_active(), zone'u etkinleştirmeyi başaramayabilir ve etkin bir zone'u serbest bırakmak için btrfs_zone_finish_one_bg() işlevine geri dönebilir. Bu yol, zoned_meta_io_lock kilidini hâlâ tutarken çalışan işlemin commit edilmesini bekler, ancak commit eden görev tree extent'lerini yazmak için aynı kilide ihtiyaç duyar, bu nedenle iki görev kilitlenir: Görev A (kworker, meta veri geri yazma) Görev B (fsstress, işlem commit'i) ------------------------------------ ------------------------------------- wb_workfn() btrfs_commit_transaction(T) btree_writepages() btrfs_write_and_wait_transaction() btrfs_zoned_meta_io_lock() btrfs_write_marked_extents() btrfs_check_meta_write_pointer() btree_writepages() check_bg_is_active() [treelog_bg] btrfs_zoned_meta_io_lock() btrfs_zone_finish_one_bg() <zoned_meta_io_lock üzerinde btrfs_zone_finish() bloke olur, kilit Görev A do_zone_finish() tarafından tutulmaktadır> btrfs_inc_block_group_ro() btrfs_wait_for_commit() <Görev B tarafından yapılan T işleminin commit'ini bekleyerek bloke olur> check_bg_is_active() içindeki kardeş dal, tam da bu nedenle do_zone_finish() çevresinde zoned_meta_io_lock kilidini zaten bırakır. Tree-log dalında da aynısını yapın: btrfs_zone_finish_one_bg() çevresinde kilidi bırakın ve ardından yeniden edinin. Kilit yalnızca fs_info->active_{meta,system}_bg alanlarını korur, bu dal bunlara dokunmaz ve ctx->zoned_bg kilit bırakıldığı süre boyunca block group'a bir referans tutar, bu nedenle kilit bırakıldığında hiçbir şey kaybolmaz. Bu askıda kalma, zoned bir btrfs dosya sisteminde fstests generic/475 ile ara sıra yeniden üretilebilmektedir.
Nasıl düzeltilir
- Linux Linux18577e77c2c8adaadf1f7c6e9bcd1c0b14e5dcdd, c3320873e0c04ce7b746fc8fe948f07bbbbdec33, deddd28fd83c264ee2ff5cd6b34449a9f1be6112, 75859a7cd77cd2ddaddbcb963e3fcd34738953af, 1ebe51c29fa9755d5b2fea28727c051117907cf8, 6.6 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| Linux Linux | 13bb483d32abb6f8ebd40141d87eb68f11cc2dd2 ≤ v < 18577e77c2c8adaadf1f7c6e9bcd1c0b14e5dcdd, 13bb483d32abb6f8ebd40141d87eb68f11cc2dd2 ≤ v < c3320873e0c04ce7b746fc8fe948f07bbbbdec33, 13bb483d32abb6f8ebd40141d87eb68f11cc2dd2 ≤ v < deddd28fd83c264ee2ff5cd6b34449a9f1be6112, 13bb483d32abb6f8ebd40141d87eb68f11cc2dd2 ≤ v < 75859a7cd77cd2ddaddbcb963e3fcd34738953af, 13bb483d32abb6f8ebd40141d87eb68f11cc2dd2 ≤ v < 1ebe51c29fa9755d5b2fea28727c051117907cf8, fca3a1cd3ba47f1815e0c0fcdc9aafaf02ee0a75, 6.5.5 ≤ v < 6.6, 6.6 | 18577e77c2c8adaadf1f7c6e9bcd1c0b14e5dcdd, c3320873e0c04ce7b746fc8fe948f07bbbbdec33, deddd28fd83c264ee2ff5cd6b34449a9f1be6112, 75859a7cd77cd2ddaddbcb963e3fcd34738953af, 1ebe51c29fa9755d5b2fea28727c051117907cf8, 6.6 |
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.