CVE-2026-97918
Təsvir
Linux kernel-də aşağıdakı zəiflik aradan qaldırılmışdır: tracing: histogram trigger-inin aktivləşdirilməsi uğursuz olduqda qeydiyyatın ləğv edilməsi 6f86bdeab633 nömrəli commit ("tracing: Fix bad hist from corrupting named_triggers list"), qeydiyyata alınmış lakin file->triggers siyahısında olmayan bir trigger-in hələ də qlobal named_triggers siyahısında olduğu halda azad edilməsinin necə baş verdiyini təsvir etmiş və qeydiyyat prosesini aşağıya köçürmüşdür ki, hist_trigger_enable() funksiyası dərhal onu izləsin. Bir yol hələ də ora çatır. hist_trigger_enable() trigger-i əlavə edir və hadisə aktivləşdirilə bilmədikdə onu dərhal geri çıxarı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--; } beləliklə, hist_unregister_trigger()-dəki siyahı gəzintisi heç nə ilə uyğunlaşmır, test NULL qalır və del_named_trigger()-i çağıracaq olan ->free() ötürülür. out_unreg hissəsi out_free-yə keçir və bu da trigger-i hər halda azad edir: 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 Trigger-i hist_unregister_trigger()-in tapa biləcəyi yerdə saxlayın və qeydiyyatın ləğvini həmin funksiyanın yerinə yetirməsinə icazə verin; çünki cmd_ops->init()-in götürdüyü hər şeyi (adlandırılmış siyahı girişi, hist_pad istinadı, adlandırılmış histogramla paylaşılan trigger üzərindəki istinad və kopyalanmış cmd_ops) yalnız həmin kod bilir. Bu həmçinin uğursuz trace_event_trigger_enable_disable()-i cütləşdirir, əks halda onun sm_ref və buferlənmiş hadisə istinadları geridə qalardı. ->free() funksiyası trigger_data-nı və histogramını paylaşmayan trigger üçün hist_data-nı azad etdiyi üçün, out_unreg artıq out_free-yə keçə bilməz. Paylaşan trigger üçün isə hist_register_trigger() artıq çağıran tərəfin hist_data-sını məhv etmişdir, buna görə də həmin keçid orada da azad edilmiş yaddaşı oxuyurdu. Eyni səbəbdən hist_unregister_trigger()-dəki enable_timestamps yoxlamasını ->free() çağırışından yuxarıya köçürün: silinən trigger ona sahib olduqda, hist_data ondan daha çox yaşamır.
Necə düzəltmək olar
Mənbələrdə bu zəiflik üçün düzəldilmiş versiya və ya yamaq keçidi yoxdur.
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| microsoft azl3_kernel_6.6.157.1-1 | Aralıq göstərilməyib | — |
| microsoft azl3_kernel_6.6.159.1-1 | Aralıq göstərilməyib | — |
Versiyanızı yoxlayın
Məhsulu seçin və istifadə etdiyiniz versiyanı yazın; versiyanın təsirlənən aralıqda olub-olmadığını görün.
Attack Surface Management
Domenlərinizə bağlı aktivləri, onlarda işləyən texnologiyaları və məlum zəiflikləri bir siyahıda görün.