CVE-2025-38209

Kritik

Açıklama

Linux kernel'de aşağıdaki güvenlik açığı giderilmiştir: nvme-tcp: ikinci admin kuyruğu yapılandırması başarısız olduğunda etiket kümesini kaldırın 104d0e2f6222 numaralı commit ("nvme-fabrics: reset admin connection for secure concatenation"), nvme_tcp_setup_ctrl() fonksiyonunun nvme_tcp_configure_admin_queue() fonksiyonunu iki kez çağırmasını sağlayacak şekilde değiştirmiştir. İlk çağrı DH-CHAP müzakeresi için hazırlık yapar ve ikinci çağrı güvenli birleştirme (secure concatenation) için gereklidir. Ancak bu değişiklik, blk_mq_queue_tag_busy_iter() içerisinde BUG KASAN slab-use-after-free hatasını tetiklemiştir. Bu hata, blktests nvme/063 test durumu birkaç kez tekrarlanarak yeniden oluşturulabilir [1]. Hata meydana geldiğinde, nvme_tcp_create_ctrl() aşağıdaki çağrı zincirinde başarısız olur: nvme_tcp_create_ctrl() nvme_tcp_alloc_ctrl() new=true ... nvme_tcp_ctrl ve admin_tag_set tahsis edilir nvme_tcp_setup_ctrl() new=true nvme_tcp_configure_admin_queue() new=true ... Başarılı nvme_alloc_admin_tag_set() ... admin_tag_set için etiket kümesi tahsis edilir nvme_stop_keep_alive() nvme_tcp_teardown_admin_queue() remove=false nvme_tcp_configure_admin_queue() new=false nvme_tcp_alloc_admin_queue() ... Başarısız, ancak nvme_remove_admin_tag_set() çağrılmaz nvme_uninit_ctrl() nvme_put_ctrl() ... nvme_tcp_ctrl ve admin_tag_set serbest bırakılır nvme_tcp_configure_admin_queue() fonksiyonunun ilk çağrısı new=true argümanı ile başarılı olur. İkinci çağrı ise new=false argümanı ile başarısız olur. Bu ikinci çağrı, new=false argümanı nedeniyle başarısızlık durumunda nvme_remove_admin_tag_set() fonksiyonunu çağırmaz. Böylece yönetici etiket kümesi (admin tag set) kaldırılmaz. Ancak nvme_tcp_create_ctrl(), nvme_tcp_setup_ctrl() fonksiyonunun nvme_remove_admin_tag_set() fonksiyonunu çağıracağını varsayar. Ardından, admin_tag_set alanına sahip olan struct nvme_tcp_ctrl yapısını serbest bırakır. Daha sonra zaman aşımı işleyicisi admin_tag_set alanına erişir ve BUG KASAN slab-use-after-free hatasına neden olur. Yönetici etiket kümesinin kalmaması için, ikinci nvme_tcp_configure_admin_queue() çağrısı başarısız olduğunda nvme_remove_admin_tag_set() fonksiyonunu çağırın. Başarısızlık durumunda nvme_tcp_setup_ctrl() fonksiyonundan geri dönmeyin; bunun yerine, nvme_remove_admin_tag_set() fonksiyonunu çağıran nvme_tcp_teardown_admin_queue() işlemini yürütmek için "destroy_admin" go-to etiketine dallanın.

ÖnemKritik
CVSS9.8
İstismar olasılığı—
ÜrünLinux Kernel
Yayın4 Tem 2025
İlk görülme4 Tem 2025

Nasıl düzeltilir

Güncelleyin
  • linux linux_kernel6.15.4 ya da sonraki bir sürüm

Etkilenen ürünler

ÜrünEtkilenen sürümlerDüzeltildiği sürüm
linux linux_kernel6.15 ≤ v < 6.15.46.15.4

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.