CVE-2024-43870
Açıklama
Linux kernel içerisinde aşağıdaki güvenlik açığı giderilmiştir: perf: Çıkış sırasında oluşan olay sızıntısı düzeltildi Bir görev zamanlamadan çıkarıldığında, bekleyen sigtrap iletimleri, task_work aracılığıyla kullanıcı alanına dönüldüğünde hedef göreve ertelenir. Ancak, bir olayın geri çağırma işlevinin task_work motoruna eklenmesi sırasındaki hatalar yoksayılmaktadır. Olaylar için son çıkış çağrısı, task work nihayet kapatıldıktan sonra gerçekleştiği için, bekleyen sigtrap'in kuyruğa alınabileceği ancak yoksayılabileceği küçük bir pencere oluşmakta ve aşağıdaki senaryoda olduğu gibi olay referans sayacı artırımı sızdırılmaktadır: GÖREV A ----- do_exit() exit_task_work(tsk); <IRQ> perf_event_overflow() event->pending_sigtrap = pending_id; irq_work_queue(&event->pending_irq); </IRQ> =========> YARIŞMA (PREEMPTION): GÖREV A -> GÖREV B event_sched_out() event->pending_sigtrap = 0; atomic_long_inc_not_zero(&event->refcount) // HATA: task work sona erdi task_work_add(&event->pending_task) [...] <IRQ WORK> perf_pending_irq() // erken dönüş: event->oncpu = -1 </IRQ WORK> [...] =========> GÖREV B -> GÖREV A perf_event_exit_task(tsk) perf_event_exit_event() free_event() WARN(atomic_long_cmpxchg(&event->refcount, 1, 0) != 1) // beklenmedik refcount == 2 nedeniyle olay sızıntısı Sonuç olarak, görevden çıkılırken olay hiçbir zaman serbest bırakılmaz. Bu durum, uygun task_work_add() hata yönetimi ile düzeltilmiştir.
Nasıl düzeltilir
- linux linux_kernel5.15.165, 6.1, 6.1.103, 6.6.44, 6.10.3 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 | 5.15.84 ≤ v < 5.15.165, 6.0.14 ≤ v < 6.1, 6.1.1 ≤ v < 6.1.103, 6.2 ≤ v < 6.6.44, 6.7 ≤ v < 6.10.3, 6.1 | 5.15.165, 6.1, 6.1.103, 6.6.44, 6.10.3 |
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.