CVE-2025-22030

Orta

Açıklama

Linux çekirdeğinde aşağıdaki güvenlik açığı giderilmiştir: mm: zswap: zswap_cpu_comp_dead() içindeki crypto_free_acomp() kilitlenmesini düzelt Şu anda zswap_cpu_comp_dead(), CPU başına acomp_ctx mutex'ini tutarken crypto_free_acomp() çağrısında bulunuyor. crypto_free_acomp() ardından (crypto_exit_scomp_ops_async() aracılığıyla) scomp_lock'u tutuyor. Öte yandan, crypto_alloc_acomp_node() (crypto_scomp_init_tfm() aracılığıyla) scomp_lock'u tutuyor ve ardından bellek ayırıyor. Ayırma geri kazanıma (reclaim) yol açarsa, CPU başına acomp_ctx mutex'ini tutmaya çalışabiliriz. Yukarıdaki bağımlılıklar bir ABBA kilitlenmesine neden olabilir. Örneğin aşağıdaki senaryoda: (1) CPU #1 üzerinde çalışan Görev A: crypto_alloc_acomp_node() scomp_lock'u tutar Geri kazanıma girer per_cpu_ptr(pool->acomp_ctx, 1) okur (2) Görev A zamanlamadan çıkarılır (3) CPU #1 çevrimdışı olur zswap_cpu_comp_dead(CPU #1) per_cpu_ptr(pool->acomp_ctx, 1) tutar crypto_free_acomp() çağırır scomp_lock'u bekler (4) CPU #2 üzerinde çalışan Görev A: per_cpu_ptr(pool->acomp_ctx, 1) bekler // CPU #1 üzerinde okuma KİLİTLENME zswap_cpu_comp_dead() içinde crypto_free_acomp() çağrısının CPU başına acomp_ctx mutex'i tutulurken yapılması gerekliliği olmadığından, çağrıyı mutex açıldıktan sonraya taşıyın. Ayrıca tutarlılık sağlamak ve gelecekte olası ince kilit bağımlılıklarından kaçınmak için acomp_request_free() ve kfree() çağrılarını da taşıyın. Bu sayede mutex tutulurken yalnızca acomp_ctx alanlarının NULL olarak ayarlanması gerçekleşir. Bu, zswap_cpu_comp_prepare() işlevinin mutex'i tutmadan önce tüm ayırmaları gerçekleştirdikten sonra acomp_ctx alanlarını yalnızca mutex tutulurken başlatmasına benzer. Fırsat bulmuşken, acomp_ctx üzerindeki NULL denetimini mutex başvurusundan önce gerçekleşecek şekilde taşıyın.

ÖnemOrta
CVSS5.5
İstismar olasılığı—
ÜrünLinux Kernel
Yayın16 Nis 2025
İlk görülme16 Nis 2025

Nasıl düzeltilir

Güncelleyin
  • linux linux_kernel6.12.23, 6.13.11, 6.14.2 ya da sonraki bir sürüm

Etkilenen ürünler

ÜrünEtkilenen sürümlerDüzeltildiği sürüm
linux linux_kernel6.12.12 ≤ v < 6.12.23, 6.13.1 ≤ v < 6.13.11, 6.14 ≤ v < 6.14.2, 6.136.12.23, 6.13.11, 6.14.2

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.