CVE-2026-97918
Açıklama
Linux kernel içerisinde aşağıdaki güvenlik açığı giderilmiştir: tracing: Histogram tetikleyicisi etkinleştirilemediğinde kaydı geri al 6f86bdeab633 numaralı commit ("tracing: Fix bad hist from corrupting named_triggers list"), kayıtlı olan ancak file->triggers üzerinde bulunmayan bir tetikleyicinin, küresel named_triggers listesinde kalmaya devam ederken nasıl serbest bırakıldığını açıklamış ve kaydı aşağıya taşıyarak hist_trigger_enable()'ın hemen ardından gelmesini sağlamıştır. Bir yol hala buraya ulaşmaktadır. hist_trigger_enable(), tetikleyiciyi ekler ve olay etkinleştirilemediğinde onu doğrudan geri çıkarır: list_add_tail_rcu(&data->list, &file->triggers); update_cond_flag(file); if (trace_event_trigger_enable_disable(file, 1) < 0) { list_del_rcu(&data->list); update_cond_flag(file); ret--; } bu nedenle hist_unregister_trigger() içindeki liste taraması hiçbir şeyle eşleşmez, test NULL olarak kalır ve del_named_trigger() fonksiyonunu çağıracak olan ->free() işlemi atlanır. out_unreg kısmı out_free kısmına geçer ve bu da tetikleyiciyi her halükarda serbest bırakır: BUG: KASAN: slab-use-after-free in find_named_trigger+0xac/0xc0 Read of size 8 at addr ffff8880091d3160 by task init/1 find_named_trigger+0xac/0xc0 hist_register_trigger+0xc1/0xa00 event_hist_trigger_parse+0x3146/0x6af0 event_trigger_write+0xce/0x160 Freed by task 69: kfree+0x154/0x420 trigger_kthread_fn+0xfd/0x160 Tetikleyiciyi hist_unregister_trigger()'ın bulabileceği yerde bırakın ve kaydı bunun geri almasını sağlayın; çünkü cmd_ops->init()'in aldığı tüm öğeleri (adlandırılmış liste girişi, hist_pad referansı, adlandırılmış bir histogramla paylaşılan tetikleyici üzerindeki referans ve kopyalanmış cmd_ops) bilen tek kod budur. Ayrıca bu işlem, aksi takdirde sm_ref ve tamponlanmış olay referansı geride kalan başarısız trace_event_trigger_enable_disable() işlemini de dengeler. ->free() fonksiyonu trigger_data'yı ve histogramını paylaşmayan bir tetikleyici için onunla birlikte hist_data'yı serbest bıraktığından, out_unreg artık out_free kısmına geçemez. Paylaşım yapan bir tetikleyici için hist_register_trigger() zaten çağıranın hist_data'sını yok etmiştir, dolayısıyla bu geçiş orada da serbest bırakılmış belleği okumaktaydı. Aynı nedenden dolayı, hist_unregister_trigger() içindeki enable_timestamps kontrolünü ->free() çağrısının üzerine taşıyın: kaldırılan tetikleyici ona sahip olan tetikleyici olduğunda, hist_data ondan daha uzun süre hayatta kalmaz.
Nasıl düzeltilir
Kaynaklarda bu zafiyet için düzeltilmiş sürüm ya da yama bağlantısı yok.
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| microsoft azl3_kernel_6.6.157.1-1 | Aralık belirtilmemiş | — |
| microsoft azl3_kernel_6.6.159.1-1 | Aralık belirtilmemiş | — |
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.