CVE-2024-43853
Açıklama
Linux kernel içerisinde aşağıdaki güvenlik açığı giderilmiştir: cgroup/cpuset: proc_cpuset_show() fonksiyonundaki UAF önlendi [1]'de bildirildiği üzere, /proc/cpuset okunduğunda bir UAF meydana gelebilir. Bu durum şu yöntemlerle yeniden üretilebilir: 1. cgroup_path_ns fonksiyonunda cgroup_lock alınmadan önce bir mdelay(1000) ekleyin. 2. $cat /proc/<pid>/cpuset komutunu tekrarlayın. 3. $mount -t cgroup -o cpuset cpuset /sys/fs/cgroup/cpuset/ ve $umount /sys/fs/cgroup/cpuset/ komutlarını tekrarlayın. Bu hataya neden olan yarış durumu (race condition) aşağıda gösterilmiştir: (umount) | (cat /proc/<pid>/cpuset) css_release | proc_cpuset_show css_release_work_fn | css = task_get_css(tsk, cpuset_cgrp_id); css_free_rwork_fn | cgroup_path_ns(css->cgroup, ...); cgroup_destroy_root | mutex_lock(&cgroup_mutex); rebind_subsystems | cgroup_free_root | | // cgrp serbest bırakıldı, UAF | cgroup_path_ns_locked(cgrp,..); cpuset başlatıldığında, kök düğüm top_cpuset.css.cgrp, &cgrp_dfl_root.cgrp adresini gösterecektir. cgroup v1'de, mount işlemi cgroup_root tahsis edecek ve top_cpuset.css.cgrp, tahsis edilen &cgroup_root.cgrp adresini gösterecektir. umount işlemi yürütüldüğünde, top_cpuset.css.cgrp tekrar &cgrp_dfl_root.cgrp adresine bağlanacaktır. Sorun şudur ki; cgrp_dfl_root'a yeniden bağlama sırasında, cgroup v1 için kök kurulumu yapılarak tahsis edilen cgroup_root'un önbelleğe alındığı durumlar mevcuttur. Bu durum, söz konusu yapının daha sonra serbest bırakılması halinde bir Serbest Bırakıldıktan Sonra Kullanım (UAF) hatasına yol açabilir. cgroup v1'in alt cgroup'ları ancak css serbest bırakıldıktan sonra serbest bırakılabilir. Ancak, kökün css'i asla serbest bırakılmayacak, buna rağmen cgroup_root ayır edildiğinde (unmounted) serbest bırakılmalıdır. Bu, kökün css referansını almanın, css.cgrp->root'un serbest bırakılmayacağını garanti etmediği anlamına gelir. Bu sorun, proc_cpuset_show() içerisinde rcu_read_lock kullanılarak giderilmiştir. d23b5c577715 ("cgroup: Make operations on the cgroup root_list RCU safe") commit'inden sonra cgroup_root, kfree_rcu ile serbest bırakıldığı için kritik bölüm sırasında css->cgroup serbest bırakılmayacaktır. cgroup_path_ns_locked çağrısı için css_set_lock gerektiğinden, task_get_css yerine task_css kullanmak güvenlidir. [1] https://syzkaller.appspot.com/bug?extid=9b1ff7be974a403aa4cd
Nasıl düzeltilir
- linux linux_kernel6.1.103, 6.6.44, 6.10.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 | 4.6 ≤ v < 6.1.103, 6.2 ≤ v < 6.6.44, 6.7 ≤ v < 6.10.3 | 6.1.103, 6.6.44, 6.10.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.