CVE-2024-49884
Açıklama
Linux kernel içerisinde aşağıdaki güvenlik açığı giderilmiştir: ext4: ext4_split_extent_at() fonksiyonundaki slab-use-after-free hatası düzeltildi Aşağıdaki serbest bırakıldıktan sonra kullanım (use-after-free) durumu tespit edilmiştir: ================================================================== BUG: KASAN: slab-use-after-free in ext4_split_extent_at+0xba8/0xcc0 Read of size 2 at addr ffff88810548ed08 by task kworker/u20:0/40 CPU: 0 PID: 40 Comm: kworker/u20:0 Not tainted 6.9.0-dirty #724 Call Trace: <TASK> kasan_report+0x93/0xc0 ext4_split_extent_at+0xba8/0xcc0 ext4_split_extent.isra.0+0x18f/0x500 ext4_split_convert_extents+0x275/0x750 ext4_ext_handle_unwritten_extents+0x73e/0x1580 ext4_ext_map_blocks+0xe20/0x2dc0 ext4_map_blocks+0x724/0x1700 ext4_do_writepages+0x12d6/0x2a70 [...] Allocated by task 40: __kmalloc_noprof+0x1ac/0x480 ext4_find_extent+0xf3b/0x1e70 ext4_ext_map_blocks+0x188/0x2dc0 ext4_map_blocks+0x724/0x1700 ext4_do_writepages+0x12d6/0x2a70 [...] Freed by task 40: kfree+0xf1/0x2b0 ext4_find_extent+0xa71/0x1e70 ext4_ext_insert_extent+0xa22/0x3260 ext4_split_extent_at+0x3ef/0xcc0 ext4_split_extent.isra.0+0x18f/0x500 ext4_split_convert_extents+0x275/0x750 ext4_ext_handle_unwritten_extents+0x73e/0x1580 ext4_ext_map_blocks+0xe20/0x2dc0 ext4_map_blocks+0x724/0x1700 ext4_do_writepages+0x12d6/0x2a70 [...] ================================================================== Sorunu tetikleyen akış şu şekildedir: ext4_split_extent_at path = *ppath ext4_ext_insert_extent(ppath) ext4_ext_create_new_leaf(ppath) ext4_find_extent(orig_path) path = *orig_path read_extent_tree_block // -ENOMEM veya -EIO döndürür ext4_free_ext_path(path) kfree(path) *orig_path = NULL a. Eğer hata -ENOMEM ise: ext4_ext_dirty(path + path->p_depth) // path serbest bırakıldıktan sonra kullanılıyor !!! b. Eğer hata -EIO ise ve EXT_DEBUG tanımlıysa: ext4_ext_show_leaf(path) eh = path[depth].p_hdr // path burada da serbest bırakıldıktan sonra kullanılıyor !!! Bu nedenle, extent uzunluğunu sıfırlamaya veya düzeltmeye çalışırken yolu güncellemek için ext4_find_extent() çağrılır. Ek olarak, EXT_DEBUG tanımlı olduğunda olası serbest bırakıldıktan sonra kullanım durumlarını önlemek ve gereksiz yol güncellemelerini engellemek için *ppath doğrudan ext4_ext_show_leaf() girdisi olarak kullanılır.
Nasıl düzeltilir
- linux linux_kernel4.19.323, 5.4.290, 5.10.227, 5.15.168, 6.1.113, 6.6.55, 6.10.14, 6.11.3 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 | 3.18 ≤ v < 4.19.323, 4.20 ≤ v < 5.4.290, 5.5 ≤ v < 5.10.227, 5.11 ≤ v < 5.15.168, 5.16 ≤ v < 6.1.113, 6.2 ≤ v < 6.6.55, 6.7 ≤ v < 6.10.14, 6.11 ≤ v < 6.11.3 | 4.19.323, 5.4.290, 5.10.227, 5.15.168, 6.1.113, 6.6.55, 6.10.14, 6.11.3 |
| debian debian_linux | 11.0 | — |
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.