CVE-2025-22035
Açıklama
Linux kernel içerisinde aşağıdaki güvenlik açığı giderilmiştir: tracing: Tracer geçişleri sırasında print_graph_function_flags fonksiyonundaki serbest bırakıldıktan sonra kullanım (use-after-free) hatası düzeltildi Kairui, ftrace stres testleri sırasında print_graph_function_flags() fonksiyonunda bir UAF sorunu bildirmiştir [1]. Bu sorun, s_start() içerisindeki 'mutex_unlock(&trace_types_lock)' ifadesinden sonra 'mdelay(10)' eklendiğinde ve aşağıdaki betik çalıştırıldığında yeniden üretilebilir: $ echo function_graph > current_tracer $ cat trace > /dev/null & $ sleep 5 # 'cat' işleminin 'mdelay(10)' noktasına ulaştığından emin olun $ echo timerlat > current_tracer Temel neden, her s_show() sırasında print_trace_line içindeki print_graph_function_flags fonksiyonuna yapılan iki çağrıdan kaynaklanmaktadır: * Biri 'iter->trace->print_line()' üzerinden; * Diğeri ise print_trace_line geri dönmeden önce print_trace_fmt() içinde gizlenen 'event->funcs->trace()' üzerinden gerçekleşmektedir. Tracer geçişi yalnızca ilkini güncellerken, ikincisi eski tracer'ın print_line fonksiyonunu kullanmaya devam eder ki yukarıdaki betikte bu fonksiyon print_graph_function_flags'dir. Ayrıca, 'function_graph' tracer'ından 'timerlat' tracer'ına geçiş yaparken, s_start sadece 'iter->private' alanını serbest bırakmak için 'function_graph' tracer'ının graph_trace_close fonksiyonunu çağırır ancak bu alanı NULL olarak ayarlamaz. Bu durum, 'event->funcs->trace()' fonksiyonunun geçersiz bir 'iter->private' kullanmasına olanak tanır. Bu sorunu gidermek için, geçersiz bir işaretçinin diğer tracer'lara aktarılmamasını sağlamak amacıyla graph_trace_close() içerisinde serbest bırakma işleminden hemen sonra 'iter->private' değeri NULL olarak ayarlanmıştır. Ek olarak, wakeup ve irqsoff tracer'ları kullanılırken her 'cat trace' işlemi sırasındaki gereksiz 'iter->private = NULL' atamaları temizlenmiştir. [1] https://lore.kernel.org/all/[email protected]/
Nasıl düzeltilir
- linux linux_kernel4.15, 4.20, 5.4.292, 5.10.236, 5.15.180, 6.1.134, 6.6.87, 6.12.23, 6.13.11, 6.14.2 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 | 4.14.324 ≤ v < 4.15, 4.19.293 ≤ v < 4.20, 5.4.255 ≤ v < 5.4.292, 5.10.193 ≤ v < 5.10.236, 5.15.129 ≤ v < 5.15.180, 6.1.50 ≤ v < 6.1.134, 6.4.13 ≤ v < 6.6.87, 6.7 ≤ v < 6.12.23, 6.13 ≤ v < 6.13.11, 6.14 ≤ v < 6.14.2 | 4.15, 4.20, 5.4.292, 5.10.236, 5.15.180, 6.1.134, 6.6.87, 6.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.
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.