CVE-2026-89517

Belirsiz

Açıklama

Linux kernel içerisinde aşağıdaki güvenlik açığı giderilmiştir: sched_ext: Core scheduling altında rq->core_pick bozulmasının düzeltilmesi Core scheduling'in pick_next_task() fonksiyonu, paylaşılan çekirdek genelindeki rq kilidi altında tek bir geçişte, çekirdeğin her SMT kardeşinde neyin çalıştırılacağını seçer. Seçim durumu yalnızca kilit sürekli tutulduğu sürece tutarlıdır, bu nedenle ->pick_task() başlangıçta kilidi serbest bırakamıyordu. Ancak, 4c95380701f5 ("sched/ext: Fold balance_scx() into pick_task_scx()") sürümünden beri, sched_ext seçim işleminin içerisinden dispatch yürütür ve dispatch işlemi rq kilidini bırakabilir. Bunu desteklemek için pick_next_task(), bir seçim işlemi kilidi bıraktıktan sonra RETRY_TASK döndürdüğünde tüm seçimi yeniden başlatacak şekilde güncellenmiştir. Aynı çekirdek üzerindeki seçimler, bırakılan kilit aracılığıyla birbirine karıştığında durumlarını bozarlar: biri diğerinin rq->core_pick değerini temizleyerek NULL deref hatasına yol açar veya önceki görevi tutma kararını geçersiz kılarak sıradan çıkarılmış bir görevin çalışmaya devam etmesine neden olur; bu da bir sonraki uyandırmayı kilitleyerek raporlanan donmalara (hard hang) yol açar. Bir SMT makinesindeki cookie tabanlı ping-pong yükü, bu karışımları sıklaştırır ve çekirdeği saniyeler içinde çökertir. Dispatch işlemi rq kilidini her bıraktığında seçimin RETRY_TASK döndürmesi sağlanarak sorun giderilmiştir; böylece bir seçim yalnızca sürekli tutulan bir kilit altında yapılan seçimleri onaylar. Önceki yamadaki rq->scx.lock_drop_seq, bırakma işlemlerini sayar. Hiçbir şeye dokunmayan bir dispatch asla kilidi bırakmaz ve "çalıştırılacak bir şey yok" dahil olmak üzere kararı geçerli kalır: yeniden denemeler sınırlıdır, her biri gerçekten bir işlem yapan bir dispatch'i takip eder ve boşta olan bir CPU döngüye girmez. Eğer rq üzerinde halihazırda başka bir dispatch işlemi yürütülüyorsa, dispatch işlemi atlanır ve yerel olarak kuyruğa alınmış olanlardan seçim yapılır - yürütülen dispatch kilidi bırakmıştır, dolayısıyla kendi seçimi bu rq'yu yeniden deneyecek ve tekrar seçecektir; burada RETRY_TASK döndürmek ise sadece o dispatch'in bitirmesi için ihtiyaç duyduğu kilit üzerinde dönmeye (spin) neden olacaktır. Balance geri çağırmaları onları kuyruğa ekleyen bağlamda çalışmalıdır, bu nedenle yalnızca CPU'nun kendi rq'suna eklenebilirler. Başka bir rq için dispatch yaparken, ertelenmiş iş doğrudan çalıştırılır - söz konusu rq, tüm seçimlerini core-sched hızlı yolu üzerinden tüketebilir ve geri çağırmayı kendisi hiçbir zaman kuyruğa eklemeyebilir. put_prev_task_scx() fonksiyonunun, arkada çalıştırılabilir bir görev kaldığına dair uyarısı, dispatch işleminin uzaklaşmakta olan seçimin bir parçası olarak çalıştığını varsaymaktaydı. Bu artık yalnızca core-sched olmayan yolda geçerlidir; bu nedenle işlem sınırlandırılmış ve core scheduling olmadan her zaman doğru olan cookie-eşleşme testi koşuldan kaldırılmıştır.

ÖnemBelirsiz
CVSS—
İstismar olasılığı—
ÜrünLinux
Yayın11 Eyl 2026
İlk görülme11 Eyl 2026

Nasıl düzeltilir

Güncelleyin
  • Linux Linuxcdafb68155bee2d5c4e50c12e4606323e9334e6b, d954004205c1a1d3f59ce8482b559266c15600fa ya da sonraki bir sürüm

Etkilenen ürünler

ÜrünEtkilenen sürümlerDüzeltildiği sürüm
Linux Linux4c95380701f58b8112f0b891de8d160e4199e19d ≤ v < cdafb68155bee2d5c4e50c12e4606323e9334e6b, 4c95380701f58b8112f0b891de8d160e4199e19d ≤ v < d954004205c1a1d3f59ce8482b559266c15600fa, 6.19cdafb68155bee2d5c4e50c12e4606323e9334e6b, d954004205c1a1d3f59ce8482b559266c15600fa

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-89517 · Linux · Dark Radar