CVE-2025-37747
Açıklama
Linux kernel içerisinde aşağıdaki güvenlik açığı giderilmiştir: perf: sigtrap olayını serbest bırakırken meydana gelen askıda kalma sorunu düzeltildi Dosya kapatılmadan önce ilgili ertelenmiş sinyal gönderilememişse, Perf bir sigtrap olayını serbest bırakırken askıda kalabilir: perf_event_overflow() task_work_add(perf_pending_task) fput() task_work_add(____fput()) task_work_run() ____fput() perf_release() perf_event_release_kernel() _free_event() perf_pending_task_sync() task_work_cancel() -> HATALI rcuwait_wait_event() task_work_run() çalışmaya başladığında, bekleyen geri çağırma listesi task_struct üzerinden kaldırılır ve bu noktadan itibaren task_work_cancel(), henüz başlatılmamış olan bekleyen iş öğelerini kaldıramaz; bu durum task_work_cancel() hatasına ve rcuwait_wait_event() üzerinde askıda kalmaya yol açar. Görev işleri, her seferinde tek bir işi kaldıracak şekilde değiştirilebilir, böylece mevcut görevde çalışan bir iş her zaman bekleyen bir işi iptal edebilir; ancak bekleme/uyandırma tasarımı, Oleg tarafından örneklendiği gibi uzak hedeflerin dahil olduğu durumlarda ters bağımlılıklara tabidir: T1 T2 fd = perf_event_open(pid => T2->pid); fd = perf_event_open(pid => T1->pid); close(fd) close(fd) <IRQ> <IRQ> perf_event_overflow() perf_event_overflow() task_work_add(perf_pending_task) task_work_add(perf_pending_task) </IRQ> </IRQ> fput() fput() task_work_add(____fput()) task_work_add(____fput()) task_work_run() task_work_run() ____fput() ____fput() perf_release() perf_release() perf_event_release_kernel() perf_event_release_kernel() _free_event() _free_event() perf_pending_task_sync() perf_pending_task_sync() rcuwait_wait_event() rcuwait_wait_event() Bu nedenle geriye kalan tek seçenek, perf görev işini kuyruğa alırken olay referans sayısını artırmak ve bunu görev işinden serbest bırakmaktır; tıpkı 3a5465418f5f ("perf: Fix event leak upon exec and file release") öncesinde yapıldığı gibi, ancak düzelttiği sızıntılar olmadan gerçekleştirilmelidir. Çalışmasını sağlamak için bazı düzenlemeler gereklidir: * Bir alt olay, serbest bırakılırken üst olayının referansını düşürebilir. Üst olayın en son serbest bırakılmasına dikkat edilmelidir. * Olayın herhangi bir referansa sahip olmadığını varsayan ve bu nedenle hemen serbest bırakılabileceğini öngören bazı yerler, bunun yerine referansı eklemeli ve referans sayım işleminin görevini yapmasına izin vermelidir.
Nasıl düzeltilir
- linux linux_kernel5.16, 6.2, 6.7, 6.12.24, 6.13.12, 6.14.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.165 ≤ v < 5.16, 6.1.103 ≤ v < 6.2, 6.6.44 ≤ v < 6.7, 6.10.3 ≤ v < 6.12.24, 6.13 ≤ v < 6.13.12, 6.14 ≤ v < 6.14.3, 6.15 | 5.16, 6.2, 6.7, 6.12.24, 6.13.12, 6.14.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.