CVE-2026-80775
Açıklama
Linux kernel'da aşağıdaki güvenlik açığı giderilmiştir: futex: İlk mm->futex.phash.ref tahsisindeki yarış durumu düzeltildi futex_hash_allocate(), herhangi bir kilitleme işlemi olmadan mm->futex.phash.ref tahsisi yapar. d9b05321e21e numaralı commit ("futex: Move futex_hash_free() back to __mmput()"), tahsisi buraya taşımış ve bu noktada sürecin yalnızca tek bir iş parçacığına sahip olduğunu varsaymıştır. ee9dce44362b numaralı commit ("futex: Drop CLONE_THREAD requirement for private default hash alloc"), need_futex_hash_allocate_default() fonksiyonunu herhangi bir CLONE_VM klonunu kapsayacak şekilde genişletmiş ancak üst süreç askıya alındığı ve yarış durumuna giremeyeceği için vfork'u hariç tutmuştur. Bu durum, vfork iç içe geçtiğinde artık geçerli değildir. Eğer bir vfork alt süreci tekrar vfork çağırırsa ve ardından SIGKILL ile sonlandırılırsa, üst süreç vfork beklemesinden kurtulur ve aynı mm içinde torun süreçle eşzamanlı olarak çalışır. Her ikisi de futex_hash_allocate_default() işleminden geçmemiştir. Her iki süreç aynı anda prctl(PR_FUTEX_HASH, PR_FUTEX_HASH_SET_SLOTS) çağırdığında, her biri mm->futex.phash.ref değerini NULL olarak görür ve kendi percpu sayacını saklar. Yalnızca son saklama işlemi kalıcı olur. İlk saklanan sayaç artık mm üzerinden erişilebilir olmadığından, üzerindeki referanslar __futex_ref_atomic_end() tarafından görülmez. Hala referansları olan özel bir hash, ölü kabul edilerek serbest bırakılır ve hala bucket'larından birini tutan bir görev, futex_q_lock() içerisinde serbest bırakılmış belleğe yazma işlemi gerçekleştirir. Sayacı cmpxchg() ile bir kez saklayın ve kaybedenin kendi free_percpu() işlemini yapmasını sağlayın. İlk referans, saklama işleminden önce alınmalıdır; aksi takdirde sayaç hala 0 iken başka bir görev özel bir hash kurabilir.
Nasıl düzeltilir
- Linux Linux86d12b34bafc9a4c271a9edefea88855a934d6e5, ff252ed45c8263525f2f54d81c5fa6d547fba344, c4b4972d8edcdf50b6518f55119e129d2f668a10, bde0238083647381d4747355c5a19115a3422b96 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| Linux Linux | d9b05321e21e4b218de4ce8a590bf375f58b6346 ≤ v < 86d12b34bafc9a4c271a9edefea88855a934d6e5, d9b05321e21e4b218de4ce8a590bf375f58b6346 ≤ v < ff252ed45c8263525f2f54d81c5fa6d547fba344, d9b05321e21e4b218de4ce8a590bf375f58b6346 ≤ v < c4b4972d8edcdf50b6518f55119e129d2f668a10, d9b05321e21e4b218de4ce8a590bf375f58b6346 ≤ v < bde0238083647381d4747355c5a19115a3422b96, 6.17 | 86d12b34bafc9a4c271a9edefea88855a934d6e5, ff252ed45c8263525f2f54d81c5fa6d547fba344, c4b4972d8edcdf50b6518f55119e129d2f668a10, bde0238083647381d4747355c5a19115a3422b96 |
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.