CVE-2026-98220

Belirsiz

Açıklama

Linux kernel içerisinde aşağıdaki güvenlik açığı giderilmiştir: sched_ext: kfunc alt zamanlayıcı hata yollarındaki NULL sched deref hatası düzeltildi Kök zamanlayıcıya alt zamanlayıcılar bağlı olduğunda, COMPAT kfunc sarmalayıcıları olan scx_bpf_select_cpu_and() ve scx_bpf_dsq_insert_vtime() çağrıyı reddeder ve durumu @p'nin zamanlayıcısına bildirir: scx_error(scx_task_sched(p), "... must be used"); Sarmalayıcılara, herhangi bir zamanlayıcısı olmayan görevlerle erişilebilir. scx_bpf_select_cpu_and(), scx_kfunc_context_filter() tarafından BPF_PROG_TYPE_SYSCALL programlarına açılan select_cpu kfunc grubundadır; scx_bpf_dsq_insert_vtime() ise ops.enqueue() ve ops.dispatch() fonksiyonlarının herhangi bir KF_RCU göreviyle çağırabileceği enqueue_dispatch grubundadır -- bu grubun kf_tasks doğrulaması yoktur ve scx_dsq_insert_preamble(), @p rastgele bir görev olabileceği için görev sahipliğini tam olarak scx_task_on_sched() ile kontrol eder. scx_task_sched(p), p->scx.sched değeridir ve bu değer, çıkış sırasında scx_disable_and_exit_task() aracılığıyla temizlenen sched_ext_dead() aşamasını geçmiş görevler için ve hiçbir zaman SCX üzerinden zamanlanmadıkları için etkinleştirme yollarının atladığı boşta (idle) görevler için NULL'dır. Ayrıca bu işlem, her iki sarmalayıcının da sahip olmadığı @p'nin pi_lock veya rq kilidini bekleyen bir rcu_dereference_protected() işlemidir. scx_error()'a NULL geçilmesi scx_vexit()'e ulaşır, bu da sch->exit_info değerinin dereferans alınmasına neden olarak çekirdekte oops hatasına yol açar. Düzeltme geliştirilirken tespit edilen somut bir tetikleyici: Bir alt zamanlayıcı bağlıyken, sonlanmış ancak henüz toplanmamış (reaped) bir görev üzerinde select_cpu_and sarmalayıcısını çağıran bir BPF_PROG_TYPE_SYSCALL programı (zombi görev toplanana kadar pid değeri bulunabilir kalır; hata veren komut, RDI=NULL iken scx_vexit() prologundaki "mov r15,[rdi+0x398]" komutudur ve 0x398, sch->exit_info'nun ofsetidir): sched_ext: BPF scheduler "kfunc_subsched_null" enabled sched_ext: BPF sub-scheduler "kfunc_subsched_null" enabled sched_ext: Unassociated program run_select_cpu_ (id 76) BUG: kernel NULL pointer dereference, address: 0000000000000398 #PF: supervisor read access in kernel mode #PF: error_code(0x0000) - not-present page Oops: Oops: 0000 [#1] SMP NOPTI CPU: 7 UID: 0 PID: 8201 Comm: kfunc_test_runn Tainted: G W RIP: 0010:scx_vexit+0x25/0xa0 Code: ... <4c> 8b bf 98 03 00 00 ... CR2: 0000000000000398 Call Trace: <TASK> __scx_exit+0x4f/0x70 scx_bpf_select_cpu_and+0xab/0xb0 bpf_prog_430ed61a7b66e03a_run_select_cpu_and+0x9c/0xe7 ? __x64_sys_bpf+0x2c/0x40 bpf_prog_test_run_syscall+0x130/0x2f0 __sys_bpf+0x930/0x10d0 ? __x64_sys_bpf+0x2c/0x40 __x64_sys_bpf+0x2c/0x40 do_syscall_64+0xbc/0x460 entry_SYSCALL_64_after_hwframe+0x76/0x7e </TASK> Bunun yerine, sarmalayıcıların guard(rcu)() üzerinden yapabileceği şekilde @p'nin zamanlayıcısı RCU altında okunur; belirlenebildiğinde hata verilir ve belirlenemediğinde -- @p, sched_ext_dead() aşamasını geçmiş bir görev veya boşta bir görev olduğunda -- raporlanacak bariz bir sorun olmadığından, herhangi bir zamanlayıcıda hata oluşturmadan çağrı daha önce olduğu gibi reddedilir. Bu COMPAT sarmalayıcılarının, kullanımdan kaldırma grace süresi dolduğunda kaldırılması planlanmaktadır; ancak o zamana kadar -- ve kaldırma takviminden bağımsız olarak -- kendilerine teslim edilen bir görev üzerinde çekirdeğin oops vermesine neden olmamalıdırlar.

ÖnemBelirsiz
CVSS—
İstismar olasılığı9. yüzdelik%0,2
ÜrünLinux
Yayın6 Eki 2026
İlk görülme6 Eki 2026

Nasıl düzeltilir

Güncelleyin
  • Linux Linux589f0945bf3ebf0790fd51e28c7f0d04ed3d8b78, 0a85182723b65ad8bee8131bc38fcf0347d6679b ya da sonraki bir sürüm

Etkilenen ürünler

ÜrünEtkilenen sürümlerDüzeltildiği sürüm
Linux Linuxa5fa0708cbfda4d3c2c6a447de7c4b0b23595527 ≤ v < 589f0945bf3ebf0790fd51e28c7f0d04ed3d8b78, a5fa0708cbfda4d3c2c6a447de7c4b0b23595527 ≤ v < 0a85182723b65ad8bee8131bc38fcf0347d6679b, 7.1589f0945bf3ebf0790fd51e28c7f0d04ed3d8b78, 0a85182723b65ad8bee8131bc38fcf0347d6679b

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.

Intelligence 360 paketinde

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.

CVE-2026-98220 · Linux · Dark Radar