CVE-2026-46299

Yüksek

Açıklama

Linux kernel'de aşağıdaki güvenlik açığı giderilmiştir: hfsplus: hfsplus_fill_super() fonksiyonunda tutulan kilidin serbest bırakılması hatası düzeltildi hfsplus_fill_super(), bir arama yapısını başlatmak için hfs_find_init() fonksiyonunu çağırır ve bu işlem tree->tree_lock kilidini edinir. Eğer ardından gelen hfsplus_cat_build_key() çağrısı başarısız olursa, fonksiyon kilidi serbest bırakmadan out_put_root hata etiketine atlar. Daha sonraki temizleme yolu, kilit hala tutulurken ağaç veri yapısını serbest bırakır ve bu durum "held lock freed" uyarısını tetikler. Bu sorun, out_put_root hata etiketine atlamadan önce eksik olan hfs_find_exit(&fd) çağrısının eklenmesiyle düzeltilmiştir. Bu sayede hata yolunda tree->tree_lock kilidinin uygun şekilde serbest bırakılması sağlanmıştır. Hata başlangıçta geliştirilmekte olan deneysel bir statik analiz aracı kullanılarak v6.13-rc1 sürümünde tespit edilmiş ve sorunun güncel ana hat (mainline) çekirdeğinde de devam ettiği doğrulanmıştır. Araç, özellikle bellek yönetimi sorunlarını tespit etmek için tasarlanmıştır; şu anda aktif geliştirme aşamasındadır ve henüz kamuya açık değildir. Hata; QEMU altında x86_64 defconfig, lockdep etkinleştirilmiş ve CONFIG_HFSPLUS_FS=y yapılandırmasıyla çalışma zamanı testleri yapılarak onaylanmıştır. Hata yolunu tetiklemek için GDB kullanılarak hfsplus_asc2uni() çağrılmadan önce max_unistr_len parametresi dinamik olarak 1'e düşürülmüştür. Bu işlem, hfsplus_asc2uni()'nin doğal olarak -ENAMETOOLONG döndürmesini sağlar; bu değer hfsplus_cat_build_key()'e iletilerek hatalı hata yolu çalıştırılır. Bağlama (mount) işlemi sırasında aşağıdaki uyarı gözlemlenmiştir: ========================= WARNING: held lock freed! 7.0.0-rc3-00016-gb4f0dd314b39 #4 Not tainted ------------------------- mount/174 is freeing memory ffff888103f92000-ffff888103f92fff, with a lock still held there! ffff888103f920b0 (&tree->tree_lock){+.+.}-{4:4}, at: hfsplus_find_init+0x154/0x1e0 2 locks held by mount/174: #0: ffff888103f960e0 (&type->s_umount_key#42/1){+.+.}-{4:4}, at: alloc_super.constprop.0+0x167/0xa40 #1: ffff888103f920b0 (&tree->tree_lock){+.+.}-{4:4}, at: hfsplus_find_init+0x154/0x1e0 stack backtrace: CPU: 2 UID: 0 PID: 174 Comm: mount Not tainted 7.0.0-rc3-00016-gb4f0dd314b39 #4 PREEMPT(lazy) Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.15.0-1 04/01/2014 Call Trace: <TASK> dump_stack_lvl+0x82/0xd0 debug_check_no_locks_freed+0x13a/0x180 kfree+0x16b/0x510 ? hfsplus_fill_super+0xcb4/0x18a0 hfsplus_fill_super+0xcb4/0x18a0 ? __pfx_hfsplus_fill_super+0x10/0x10 ? srso_return_thunk+0x5/0x5f ? bdev_open+0x65f/0xc30 ? srso_return_thunk+0x5/0x5f ? pointer+0x4ce/0xbf0 ? trace_contention_end+0x11c/0x150 ? __pfx_pointer+0x10/0x10 ? srso_return_thunk+0x5/0x5f ? bdev_open+0x79b/0xc30 ? srso_return_thunk+0x5/0x5f ? srso_return_thunk+0x5/0x5f ? vsnprintf+0x6da/0x1270 ? srso_return_thunk+0x5/0x5f ? __mutex_unlock_slowpath+0x157/0x740 ? __pfx_vsnprintf+0x10/0x10 ? srso_return_thunk+0x5/0x5f ? srso_return_thunk+0x5/0x5f ? mark_held_locks+0x49/0x80 ? srso_return_thunk+0x5/0x5f ? srso_return_thunk+0x5/0x5f ? irqentry_exit+0x17b/0x5e0 ? trace_irq_disable.constprop.0+0x116/0x150 ? __pfx_hfsplus_fill_super+0x10/0x10 ? __pfx_hfsplus_fill_super+0x10/0x10 get_tree_bdev_flags+0x302/0x580 ? __pfx_get_tree_bdev_flags+0x10/0x10 ? vfs_parse_fs_qstr+0x129/0x1a0 ? __pfx_vfs_parse_fs_qstr+0x3/0x10 vfs_get_tree+0x89/0x320 fc_mount+0x10/0x1d0 path_mount+0x5c5/0x21c0 ? __pfx_path_mount+0x10/0x10 ? trace_irq_enable.constprop.0+0x116/0x150 ? trace_irq_enable.constprop.0+0x116/0x150 ? srso_return_thunk+0x5/0x5f ? srso_return_thunk+0x5/0x5f ? kmem_cache_free+0x307/0x540 ? user_path_at+0x51/0x60 ? __x64_sys_mount+0x212/0x280 ? srso_return_thunk+0x5/0x5f __x64_sys_mount+0x212/0x280 ? __pfx___x64_sys_mount+0x10/0x10 ? srso_return_thunk+0x5/0x5f ? trace_irq_enable.constprop.0+0x116/0x150 ? srso_return_thunk+0x5/0x5f do_syscall_64+0x111/0x680 entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7ffacad55eae Code: 48 8b 0d 85 1f 0f 00 f7 d8 64 89 01 48 83 c8 ff c3 66 2e 0f 1f 84 00 00 00 00 00 90 f3 0f 1e fa 49 89 ca b8 a5 00 00 08 RSP: 002b ---kesildi---

ÖnemYüksek
CVSS7.0
İstismar olasılığı—
ÜrünLinux Kernel
Yayın8 Haz 2026
İlk görülme8 Haz 2026

Nasıl düzeltilir

Güncelleyin
  • linux linux_kernel5.10.259, 5.15.210, 6.1.176, 6.6.140, 6.12.88, 6.18.30, 7.0.7 ya da sonraki bir sürüm

Etkilenen ürünler

ÜrünEtkilenen sürümlerDüzeltildiği sürüm
linux linux_kernel3.19 ≤ v < 5.10.259, 5.11 ≤ v < 5.15.210, 5.16 ≤ v < 6.1.176, 6.2 ≤ v < 6.6.140, 6.7 ≤ v < 6.12.88, 6.13 ≤ v < 6.18.30, 6.19 ≤ v < 7.0.75.10.259, 5.15.210, 6.1.176, 6.6.140, 6.12.88, 6.18.30, 7.0.7

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-2026-46299 · Linux Kernel · Dark Radar