CVE-2026-89580

Yüksek

Açıklama

Linux çekirdeğinde aşağıdaki güvenlik açığı giderilmiştir: bpf: __bpf_get_stack fonksiyonunda öncelikli yürütme (preemption) devre dışı bırakıldı get_perf_callchain() her işlemciye özel bir perf_callchain_entry tamponu döndürür ve geri dönmeden önce put_callchain_entry() aracılığıyla özyineleme yuvasını serbest bırakır; bu nedenle __bpf_get_stack() aşağıda bunu tüketirken girdiyi rezerve tutan hiçbir şey yoktur. Öncelikli yürütülebilir bir BPF programı (örneğin, PREEMPT çekirdek üzerinde migrate_disable() altında çalışan ancak preempt_disable() altında çalışmayan, uyutulamaz bir ham izleme noktası programı), girdinin alınması ile kopyalama işlemi arasında zamanlanmış olarak dışarı çıkarılabilir. Ardından aynı CPU'ya zamanlanan başka bir görev, aynı işlemciye özel tamponu yeniden kullanır ve trace->nr değerini daha büyük bir değerle üzerine yazar. copy_len değeri daha sonra şişirilmiş olan trace->nr üzerinden hesaplanır ve çağıranın tamponunu aşabilir; bu durum memcpy() içinde ve build_id yolunda sınır dışı yazmaya (out-of-bounds write) neden olur. Burada tek başına alınan rcu_read_lock() bunu engellemez. Bu kilit yalnızca may_fault yolunda alınır ve CONFIG_PREEMPT_RCU altında öncelikli yürütmeyi devre dışı bırakmaz; sadece perf'in çağrı zinciri tampon dizisini hayatta tutar (call_rcu() aracılığıyla serbest bırakılır) ve başka bir görevin girdiyi yeniden kullanmasını durdurmak için hiçbir şey yapmaz. Çağrı zinciri girdisinin alınması ve çağıranın tamponuna kopyalanması sırasında öncelikli yürütmeyi devre dışı bırakın; böylece girdi altımızda yeniden kullanılamaz ve trace->nr değeri max_depth ile sınırlı kalır. Build ID çözünürlüğü hata (fault) verebilir ve bu nedenle öncelikli yürütme yeniden etkinleştirilene kadar ertelenir; o zamana kadar komut işaretçileri zaten buf içine kopyalanmıştır, dolayısıyla yalnızca bu özel kopya üzerinde işlem yapar. preempt_disable()'ın, rcu_read_lock()'un sağladığı tampon ömür garantisini de kapsadığına dikkat edin, çünkü öncelikli yürütmenin devre dışı bırakıldığı bir bölüm, çağrı zinciri tamponlarının call_rcu() geri kazanımı için bir RCU okuma tarafı kritik bölümüdür. [ değiştirilen Fixes: commit ]

ÖnemYüksek
CVSS7.8
İstismar olasılığı—
ÜrünLinux
Yayın11 Eyl 2026
İlk görülme11 Eyl 2026

Nasıl düzeltilir

Güncelleyin
  • Linux Linux68eebc89c5ab5a8f9281773f35e49c83940450a0, 719e69421de28829c72bf8a2722ab48a1c5a59ad, 8c5ba022f2085ea42d011497a6e92e527d123b9b, dbfecc8a6631c0d3626c14ba1f1a485a4498445a, 9a23747909fcae707990c8466c381a0e7acfaa4e, b1a47b2708d4e95dbd23aee2ec83752190897b3f ya da sonraki bir sürüm

Etkilenen ürünler

ÜrünEtkilenen sürümlerDüzeltildiği sürüm
Linux Linuxc195651e565ae7f41a68acb7d4aa7390ad215de1 ≤ v < 68eebc89c5ab5a8f9281773f35e49c83940450a0, c195651e565ae7f41a68acb7d4aa7390ad215de1 ≤ v < 719e69421de28829c72bf8a2722ab48a1c5a59ad, c195651e565ae7f41a68acb7d4aa7390ad215de1 ≤ v < 8c5ba022f2085ea42d011497a6e92e527d123b9b, c195651e565ae7f41a68acb7d4aa7390ad215de1 ≤ v < dbfecc8a6631c0d3626c14ba1f1a485a4498445a, c195651e565ae7f41a68acb7d4aa7390ad215de1 ≤ v < 9a23747909fcae707990c8466c381a0e7acfaa4e, c195651e565ae7f41a68acb7d4aa7390ad215de1 ≤ v < b1a47b2708d4e95dbd23aee2ec83752190897b3f, 4.1868eebc89c5ab5a8f9281773f35e49c83940450a0, 719e69421de28829c72bf8a2722ab48a1c5a59ad, 8c5ba022f2085ea42d011497a6e92e527d123b9b, dbfecc8a6631c0d3626c14ba1f1a485a4498445a, 9a23747909fcae707990c8466c381a0e7acfaa4e, b1a47b2708d4e95dbd23aee2ec83752190897b3f

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