CVE-2025-21899
Açıklama
Linux kernel içerisinde aşağıdaki güvenlik açığı giderilmiştir: tracing: Hatalı hist'in named_triggers listesini bozmasının düzeltilmesi Aşağıdaki komutlar sistem çökmesine neden olmaktadır: ~# cd /sys/kernel/tracing/events/rcu/rcu_callback ~# echo 'hist:name=bad:keys=common_pid:onmax(bogus).save(common_pid)' > trigger bash: echo: write error: Invalid argument ~# echo 'hist:name=bad:keys=common_pid' > trigger Çünkü şu durum gerçekleşmektedir: event_trigger_write() { trigger_process_regex() { event_hist_trigger_parse() { data = event_trigger_alloc(..); event_trigger_register(.., data) { cmd_ops->reg(.., data, ..) [hist_register_trigger()] { data->ops->init() [event_hist_trigger_init()] { save_named_trigger(name, data) { list_add(&data->named_list, &named_triggers); } } } } ret = create_actions(); (return -EINVAL) if (ret) goto out_unreg; [..] ret = hist_trigger_enable(data, ...) { list_add_tail_rcu(&data->list, &file->triggers); <<<---- ATLANDI!!! (bu önemlidir!) [..] out_unreg: event_hist_unregister(.., data) { cmd_ops->unreg(.., data, ..) [hist_unregister_trigger()] { list_for_each_entry(iter, &file->triggers, list) { if (!hist_trigger_match(data, iter, named_data, false)) <- asla eşleşmez continue; [..] test = iter; } if (test && test->ops->free) <<<-- test NULL değerindedir test->ops->free(test) [event_hist_trigger_free()] { [..] if (data->name) del_named_trigger(data) { list_del(&data->named_list); <<<<-- ASLA kaldırılmaz! } } } } [..] kfree(data); <<<-- öğeyi serbest bırakır ancak öğe hala listededir İsimli bir hist bir sonraki sefer kaydedildiğinde, bu durum bir serbest bırakıldıktan sonra kullanım (u-a-f) hatasına yol açar ve kernel çökebilir. Kod, event_trigger_register() başarılı olduğunda çağrılan bir sonraki işlemin onu listeye ekleyen hist_trigger_enable() olacak şekilde yeniden düzenlenmiştir. get_named_trigger_data() false döndürdüğünde bir dizi işlem çağrılmaktadır. Ancak bunun event_trigger_register()'dan sonra çağrılmasına gerek yoktur; bu nedenle yukarı taşınabilir. Böylece event_trigger_register(), hemen ardından hist_trigger_enable() gelecek şekilde çağrılarak birlikte tutulabilir ve file->triggers listesinin doğru şekilde doldurulması sağlanabilir.
Nasıl düzeltilir
- linux linux_kernel6.1.130, 6.6.81, 6.12.18, 6.13.6 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.17 ≤ v < 6.1.130, 6.2 ≤ v < 6.6.81, 6.7 ≤ v < 6.12.18, 6.13 ≤ v < 6.13.6, 6.14 | 6.1.130, 6.6.81, 6.12.18, 6.13.6 |
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.