CVE-2023-54068
Açıklama
Linux kernel içerisinde aşağıdaki güvenlik açığı giderilmiştir: f2fs: compress: f2fs_write_raw_pages() fonksiyonunda f2fs_wait_on_page_writeback() çağrısının yapılmasına yönelik düzeltme Aynı sayfa birden fazla kez geri yazıldığı (writeback) için dosyalar eşzamanlı olarak yazılırken BUG_ON() tetiklenecektir. 1597 void folio_end_writeback(struct folio *folio) 1598 { ...... 1618 if (!__folio_end_writeback(folio)) 1619 BUG(); ...... 1625 } kernel BUG at mm/filemap.c:1619! Call Trace: <TASK> f2fs_write_end_io+0x1a0/0x370 blk_update_request+0x6c/0x410 blk_mq_end_request+0x15/0x130 blk_complete_reqs+0x3c/0x50 __do_softirq+0xb8/0x29b ? sort_range+0x20/0x20 run_ksoftirqd+0x19/0x20 smpboot_thread_fn+0x10b/0x1d0 kthread+0xde/0x110 ? kthread_complete_and_exit+0x20/0x20 ret_from_fork+0x22/0x30 </TASK> Eşzamanlılık senaryosu aşağıdadır: [Süreç A] [Süreç B] [Süreç C] f2fs_write_raw_pages() - redirty_page_for_writepage() - unlock page() f2fs_do_write_data_page() - lock_page() - clear_page_dirty_for_io() - set_page_writeback() [1. writeback] ..... - unlock page() generic_perform_write() - f2fs_write_begin() - wait_for_stable_page() - f2fs_write_end() - set_page_dirty() - lock_page() - f2fs_do_write_data_page() - set_page_writeback() [2. writeback] Bu sorun, önceki 7377e853967b ("f2fs: compress: fix potential deadlock of compress file") commit'i ile ortaya çıkmıştır. f2fs_write_raw_pages() içerisindeki tüm sayfa kilitleri serbest bırakılmış ancak sonraki yazma işleminde sayfanın writeback durumunda olup olmadığı göz ardı edilmiştir. Yazma işlemi öncesinde sayfanın writeback işleminin tamamlanmasını bekleyerek bu sorun giderilmiştir.
Nasıl düzeltilir
- Linux Linuxa8226a45b2a9ce83ba7a167a387a00fecc319e71, 169134da419cb8ffbe3b0743bc24573e16952ea9, 6604df2a9d07ba8f8fb1ac14046c2c83776faa4f, 9940877c4fe752923a53f0f7372f2f152b6eccf0, ad31eed06c3b4d63b2d38322a271d4009aee4bb3, babedcbac164cec970872b8097401ca913a80e61 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| Linux Linux | 4c8ff7095bef64fc47e996a938f7d57f9e077da3 ≤ v < a8226a45b2a9ce83ba7a167a387a00fecc319e71, 4c8ff7095bef64fc47e996a938f7d57f9e077da3 ≤ v < 169134da419cb8ffbe3b0743bc24573e16952ea9, 4c8ff7095bef64fc47e996a938f7d57f9e077da3 ≤ v < 6604df2a9d07ba8f8fb1ac14046c2c83776faa4f, 4c8ff7095bef64fc47e996a938f7d57f9e077da3 ≤ v < 9940877c4fe752923a53f0f7372f2f152b6eccf0, 4c8ff7095bef64fc47e996a938f7d57f9e077da3 ≤ v < ad31eed06c3b4d63b2d38322a271d4009aee4bb3, 4c8ff7095bef64fc47e996a938f7d57f9e077da3 ≤ v < babedcbac164cec970872b8097401ca913a80e61, 5.6 | a8226a45b2a9ce83ba7a167a387a00fecc319e71, 169134da419cb8ffbe3b0743bc24573e16952ea9, 6604df2a9d07ba8f8fb1ac14046c2c83776faa4f, 9940877c4fe752923a53f0f7372f2f152b6eccf0, ad31eed06c3b4d63b2d38322a271d4009aee4bb3, babedcbac164cec970872b8097401ca913a80e61 |
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.