CVE-2023-52982
Açıklama
Linux kernel içerisinde aşağıdaki güvenlik açığı giderilmiştir: fscache: Feragat edilen hacmin serbest bırakılmasını beklemek için wait_on_bit() kullanın Feragat edilen hacmin serbest bırakılması, wake_up_bit() kullanarak beklemedeki hacim edinimini uyandıracaktır; ancak bu durum, fscache_wait_on_volume_collision() içinde kullanılan wait_var_event() ile uyumsuzdur ve bu iki fonksiyon farklı bekleme kuyrukları üzerinde çalıştığından, bekleme kuyruğundaki bekleyeni asla uyandırmayacaktır. fscache_wait_on_volume_collision() içindeki uygulamaya göre, eğer beklemedeki edinimin uyanması 20 saniyeden daha uzun sürerse (örneğin, isteğe bağlı fd kapatma gecikmesi nedeniyle), ilk wait_var_event_timeout() zaman aşımına uğrayacak ve ardından gelen wait_var_event() aşağıda gösterildiği gibi sonsuza kadar asılı kalacaktır: FS-Cache: Potential volume collision new=00000024 old=00000022 ...... INFO: task mount:1148 blocked for more than 122 seconds. Not tainted 6.1.0-rc6+ #1 task:mount state:D stack:0 pid:1148 ppid:1 Call Trace: <TASK> __schedule+0x2f6/0xb80 schedule+0x67/0xe0 fscache_wait_on_volume_collision.cold+0x80/0x82 __fscache_acquire_volume+0x40d/0x4e0 erofs_fscache_register_volume+0x51/0xe0 [erofs] erofs_fscache_register_fs+0x19c/0x240 [erofs] erofs_fc_fill_super+0x746/0xaf0 [erofs] vfs_get_super+0x7d/0x100 get_tree_nodev+0x16/0x20 erofs_fc_get_tree+0x20/0x30 [erofs] vfs_get_tree+0x24/0xb0 path_mount+0x2fa/0xa90 do_mount+0x7c/0xa0 __x64_sys_mount+0x8b/0xe0 do_syscall_64+0x30/0x60 entry_SYSCALL_64_after_hwframe+0x46/0xb0 wake_up_bit() fonksiyonunun daha seçici olduğu göz önüne alındığında, feragat edilen hacmin serbest bırakılmasını beklemek için wait_var_event() yerine wait_on_bit() kullanılarak sorun düzeltilmiştir. Ek olarak, wake_up_bit() içinde waitqueue_active() kullanıldığı ve clear_bit() herhangi bir bellek bariyeri sağlamadığı için, cursor->flags ve waitqueue_active() arasında eksik olan bellek bariyerini eklemek amacıyla clear_and_wake_up_bit() kullanılmıştır.
Nasıl düzeltilir
- linux linux_kernel6.1.11 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 | 5.17 ≤ v < 6.1.11, 6.2 | 6.1.11 |
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.