CVE-2026-98260
Açıklama
Linux çekirdeğinde aşağıdaki güvenlik açığı giderilmiştir: exec: de_thread() işleminden hemen sonra POSIX zamanlayıcılarını temizle İş parçacığı başına düşen bir CPU zamanlayıcısı, bağlı olduğu iş parçacığının PID'sine bir referans tutar ve etkin olduğunda düğümü o iş parçacığının posix_cputimers listesine eklenir. Görev, bu PID üzerinden aranır. Lider olmayan bir iş parçacığı exec() yaptığında, de_thread() bu PID'ye hangi görevin sahip olduğunu değiştirir. Ardından pid_task(timer->it.cpu.pid, PIDTYPE_PID) NULL döner ancak düğüm hala hayatta olan tsk üzerinde kuyruklanmış durumdadır. timer_lock_sighand(), başarısız bir aramayı düğümün zaten kuyruktan çıkarıldığı anlamına gelecek şekilde yorumlar, dolayısıyla geri alacağı bir şey kalmaz. begin_new_exec(), exec_task_namespaces() işleminin hemen ardından posix_cpu_timers_exit(me) fonksiyonunu çağırır ve bu da kalan düğümü kaldırarak durumun normalde görünmez kalmasını sağlar. Ancak bprm->point_of_no_return, de_thread()'den önce ayarlanır; bu nedenle unshare_files(), set_mm_exe_file(), exec_mmap() veya exec_task_namespaces() hata verirse, görev oraya ulaşmadan ölür. exit_itimers() daha sonra düğümü hala kuyrukta iken k_itimer'ı serbest bırakır ve tsk'nın daha sonra toplanması, serbest bırakılan bu düğümü rbtree'den siler. Özetle: lider olmayan iş parçacığı B ebeveyn timer_create(CLOCK_THREAD_CPUTIME_ID) timer_settime() arm_timer() // düğüm B üzerine kuyruklanır execve() de_thread(B) exchange_tids(B, leader) // B'nin PID'si artık liderin olur release_task(leader) __exit_signal(leader) posix_cpu_timers_exit(leader) // liderin kuyruğunu temizler, B'ninkini değil __unhash_process(leader) // bu PID'nin artık bir görevi yoktur exec_mmap() mmap_read_lock_killable(old_mm) kill(B, SIGKILL) // -EINTR get_signal() do_exit() exit_itimers() posix_timer_delete() posix_cpu_timer_del() posix_timer_unhash_and_free() // hala kuyruktayken serbest bırakıldı wait4() release_task(B) posix_cpu_timers_exit(B) cleanup_timerqueue() timerqueue_del() // serbest bırakıldıktan sonra kullanım (use-after-free) POSIX zamanlayıcı temizliğini, sonraki herhangi bir hata durumu görevi do_exit() sürecine sokmadan önce, doğrudan de_thread() işleminden sonraya taşıyın. [ tglx: Temizleme işlemini de_thread()'den hemen sonraya taşıyın ]
Nasıl düzeltilir
- Linux Linuxf6c93e8ecaaf12959b7ef6eb611351001db2ff5d, 6f1977cea3e85cd8ab55fb337d3e1725fe61d1ce, d9ae467e617ca29b825493a362bf0d75ad5f4ac3, 75aa08b93c65766040f9ca99f41ac85ad22596b6, d602877baf36c43c788a5f472c977e0be414029f, acb03d3881818581052924a9bbbe92b8741ed448 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| Linux Linux | 55e8c8eb2c7b6bf30e99423ccfe7ca032f498f59 ≤ v < f6c93e8ecaaf12959b7ef6eb611351001db2ff5d, 55e8c8eb2c7b6bf30e99423ccfe7ca032f498f59 ≤ v < 6f1977cea3e85cd8ab55fb337d3e1725fe61d1ce, 55e8c8eb2c7b6bf30e99423ccfe7ca032f498f59 ≤ v < d9ae467e617ca29b825493a362bf0d75ad5f4ac3, 55e8c8eb2c7b6bf30e99423ccfe7ca032f498f59 ≤ v < 75aa08b93c65766040f9ca99f41ac85ad22596b6, 55e8c8eb2c7b6bf30e99423ccfe7ca032f498f59 ≤ v < d602877baf36c43c788a5f472c977e0be414029f, 55e8c8eb2c7b6bf30e99423ccfe7ca032f498f59 ≤ v < acb03d3881818581052924a9bbbe92b8741ed448, 5.7 | f6c93e8ecaaf12959b7ef6eb611351001db2ff5d, 6f1977cea3e85cd8ab55fb337d3e1725fe61d1ce, d9ae467e617ca29b825493a362bf0d75ad5f4ac3, 75aa08b93c65766040f9ca99f41ac85ad22596b6, d602877baf36c43c788a5f472c977e0be414029f, acb03d3881818581052924a9bbbe92b8741ed448 |
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.