CVE-2021-46984

Yüksek

Açıklama

Linux kernel içerisinde aşağıdaki güvenlik açığı giderilmiştir: kyber: öncelikli kesintiye uğratıldığında meydana gelen sınır dışı erişim hatası düzeltildi __blk_mq_sched_bio_merge() mevcut CPU için ctx ve hctx değerlerini alır ve hctx değerini ->bio_merge() fonksiyonuna iletir. Ardından kyber_bio_merge(), mevcut CPU için ctx değerini tekrar alır ve bunu, iletilen hctx içindeki karşılık gelen Kyber bağlamını elde etmek için kullanır. Ancak, iki blk_mq_get_ctx() çağrısı arasında iş parçacığı öncelikli olarak kesintiye uğrayabilir ve ikinci kez döndürülen ctx artık iletilen hctx ile eşleşmeyebilir. Bu durum çoğu zaman tesadüfen "çalışır", ancak ikinci ctx, birincisinden daha fazla ctx içeren bir hctx'den gelirse (yani, ctx->index_hw[hctx->type] > hctx->nr_ctx ise) hatalı veri okunmasına neden olabilir. Bu durum, Jakub tarafından bildirilen şu UBSAN dizi dizin sınır dışı hatası olarak ortaya çıkmıştır: UBSAN: array-index-out-of-bounds in ../kernel/locking/qspinlock.c:130:9 index 13106 is out of range for type 'long unsigned int [128]' Call Trace: dump_stack+0xa4/0xe5 ubsan_epilogue+0x5/0x40 __ubsan_handle_out_of_bounds.cold.13+0x2a/0x34 queued_spin_lock_slowpath+0x476/0x480 do_raw_spin_lock+0x1c2/0x1d0 kyber_bio_merge+0x112/0x180 blk_mq_submit_bio+0x1f5/0x1100 submit_bio_noacct+0x7b0/0x870 submit_bio+0xc2/0x3a0 btrfs_map_bio+0x4f0/0x9d0 btrfs_submit_data_bio+0x24e/0x310 submit_one_bio+0x7f/0xb0 submit_extent_page+0xc4/0x440 __extent_writepage_io+0x2b8/0x5e0 __extent_writepage+0x28d/0x6e0 extent_write_cache_pages+0x4d7/0x7a0 extent_writepages+0xa2/0x110 do_writepages+0x8f/0x180 __writeback_single_inode+0x99/0x7f0 writeback_sb_inodes+0x34e/0x790 __writeback_inodes_wb+0x9e/0x120 wb_writeback+0x4d2/0x660 wb_workfn+0x64d/0xa10 process_one_work+0x53a/0xa80 worker_thread+0x69/0x5b0 kthread+0x20b/0x240 ret_from_fork+0x1f/0x30 Sadece Kyber hctx kullandığından, bunun yerine ->bio_merge() fonksiyonuna request_queue iletilerek sorun giderilmiştir. BFQ ve mq-deadline zaten bunu kullanmaktadır; Kyber ise uyumsuzluğu önlemek için kuyrukları kendisi eşleştirebilir.

ÖnemYüksek
CVSS7.8
İstismar olasılığı—
ÜrünLinux Kernel
Yayın28 Şub 2024
İlk görülme28 Şub 2024

Nasıl düzeltilir

Güncelleyin
  • linux linux_kernel5.4.120, 5.10.38, 5.11.22, 5.12.5 ya da sonraki bir sürüm

Etkilenen ürünler

ÜrünEtkilenen sürümlerDüzeltildiği sürüm
linux linux_kernel4.18 ≤ v < 5.4.120, 5.5 ≤ v < 5.10.38, 5.11 ≤ v < 5.11.22, 5.12 ≤ v < 5.12.5, 5.135.4.120, 5.10.38, 5.11.22, 5.12.5

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.