CVE-2026-46008
Açıklama
Linux çekirdeğinde aşağıdaki güvenlik açığı giderilmiştir: mm/damon/core: damos_walk() ile kdamond_fn() çıkışı arasındaki yarış durumu düzeltildi kdamond_fn() ana döngüsü tamamlandığında, fonksiyon kalan damos_walk() isteklerini iptal eder ve API çağıranlarının ve API fonksiyonlarının bağlamın sonlandırıldığını görebilmesi için damon_ctx->kdamond değerini kaldırır. damos_walk() önce çağıranın isteğini kuyruğa ekler. Ardından, damon_ctx'in kdamond'unun hâlâ çalışıp çalışmadığını (damon_ctx->kdamond değerinin ayarlı olup olmadığını) gösterir. Yalnızca kdamond çalışıyorsa damos_walk(), kdamond'un yeni eklenen isteği işlemesini beklemeye başlar. Ancak damos_walk() istek kaydı ile damon_ctx->kdamond değerinin kaldırılması farklı mutex'ler tarafından korunur. Bu nedenle damos_walk(), damon_ctx->kdamond değerinin kaldırılmasıyla yarış durumuna girebilir ve kilitlenmelerle sonuçlanabilir. Örneğin, kdamond'un damow_walk() istek iptalini başarıyla tamamladığını varsayalım. Hemen ardından bağlam için damos_walk() çağrılır. Yeni isteği kaydeder ve damon_ctx->kdamond değerinin kaldırılması henüz tamamlanmadığı için bağlamın hâlâ çalıştığını gösterir. Bu nedenle damos_walk() çağıranı isteğin işlenmesini beklemeye başlar. Ancak kdamond zaten sonlandırma adımlarındadır, bu nedenle yeni isteği hiçbir zaman işlemez. Sonuç olarak damos_walk() çağıran iş parçacığı sonsuza kadar bekler. Bu, walk_control_obsolete adında başka bir damon_ctx alanı eklenerek düzeltilir. Bu alan, damos_walk() istek kaydını koruyan damon_ctx->walk_control_lock tarafından korunur. damon_start() dönmeden önce kdamond_fn() içinde başlatılır (kaldırılır) ve kalan damos_walk() isteğinin iptali gerçekleştirilmeden hemen önce ayarlanır. damos_walk() obsolete alanını kilit altında okur ve yeni istek eklemekten kaçınır. Bu değişiklikten sonra yalnızca işleneceği veya iptal edileceği garanti edilen istekler kaydedilir. Bu nedenle kayıt sonrası DAMON bağlam sonlandırma kontrolü artık gerekli değildir. O da kaldırılır. Sorun sashiko tarafından bulunmuştur [1].
Nasıl düzeltilir
- linux linux_kernel7.0.4 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 | 6.14 ≤ v < 7.0.4 | 7.0.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.
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.