CVE-2026-31733
Açıklama
Linux kernel içerisinde aşağıdaki güvenlik açığı giderilmiştir: sched_ext: ddsp_dsq_id içerisindeki güncelliğini yitirmiş doğrudan iletim durumu düzeltildi Bir sonraki uyandırmanın ops.select_cpu() fonksiyonu scx_bpf_dsq_insert() fonksiyonunu çağırdığında, @p->scx.ddsp_dsq_id ayarlı (non-SCX_DSQ_INVALID) kalabilir ve bu durum mark_direct_dispatch() fonksiyonunda şu şekilde hatalı bir uyarıyı tetikler: WARNING: kernel/sched/ext.c:1273 at scx_dsq_insert_commit+0xcd/0x140 Kök neden, ddsp_dsq_id değerinin yalnızca, doğrudan iletim kararını tüketen veya iptal eden tüm yollarda ulaşılmayan dispatch_enqueue() fonksiyonunda temizleniyor olmasıdır. Doğru yerlerde temizleme yapılarak sorun giderilmiştir: - direct_dispatch(): Doğrudan iletim durumu yerel değişkenlerde önbelleğe alınır ve senkron yolda dispatch_enqueue() işleminden önce temizlenir. Ertelenmiş yol için ise doğrudan iletim durumu, process_ddsp_deferred_locals() tarafından tüketilene kadar ayarlı kalmalıdır. - process_ddsp_deferred_locals(): İletim durumu yerel değişkenlerde önbelleğe alınır ve görevi başka bir rq'ya taşıyabilecek olan dispatch_to_local_dsq() çağrılmadan önce temizlenir. - do_enqueue_task(): Doğrudan iletim kararının göz ardı edildiği kuyruğa ekleme yolunda (yerel/küresel/atlama geri dönüşleri) iletim durumu temizlenir. - dequeue_task_scx(): Hem ertelenmiş iletim iptalini hem de holding_cpu yarışmasını yönetmek amacıyla, bekleyen bir doğrudan iletimin iptal edildiği tüm durumları kapsayacak şekilde dispatch_dequeue() sonrası iletim durumu temizlenir. - scx_disable_task(): Bir görev mevcut zamanlayıcıdan çıkarılırken doğrudan iletim durumu temizlenir. Uyandırılan görevlerin doğrudan iletim durumu, giden zamanlayıcının ops.select_cpu() fonksiyonu tarafından ayarlanmış olabilir ve ardından SCX_OPS_ALLOW_QUEUED_WAKEUP ayarlı olduğunda ttwu_queue_wakelist() aracılığıyla bir wake_list üzerine kuyruğa alınmış olabilir. Bu tür görevler çalışma kuyruğunda değildir ve scx_bypass() tarafından yinelenmezler, dolayısıyla doğrudan iletim durumları temizlenmez. Bu temizleme işlemi olmadan, görevi doğrudan iletmeye çalışan herhangi bir sonraki SCX zamanlayıcısı, mark_direct_dispatch() içindeki WARN_ON_ONCE() uyarısını tetikleyecektir.
Nasıl düzeltilir
- linux linux_kernel6.12.82, 6.18.22, 6.19.12 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 | 6.12 ≤ v < 6.12.82, 6.13 ≤ v < 6.18.22, 6.19 ≤ v < 6.19.12, 7.0 | 6.12.82, 6.18.22, 6.19.12 |
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.