CVE-2026-98789
Açıklama
Linux kernel içerisinde aşağıdaki güvenlik açığı giderilmiştir: bpf: free_by_rcu_ttrace içinde takılı kalan nesitlerin düzeltilmesi do_call_rcu_ttrace(), call_rcu_ttrace_in_progress ayarlı olduğunda erken döner ve nesneleri free_by_rcu_ttrace içinde bırakır. __free_rcu() yalnızca waiting_for_gp_ttrace kısmını serbest bırakır ve bayrağı temizler. Bu nedenle, RCU görevleri GP izleme işlemi devam ederken free_bulk() veya __free_by_rcu() tarafından eklenen nesneler, aynı bpf_mem_cache için tekrar free_bulk() veya alloc_bulk() çağrılana kadar free_by_rcu_ttrace içinde kalır; bu durum hiç gerçekleşmeyebilir. Bu tür nesnelerin sayısı sınırsızdır. call_rcu_ttrace_in_progress üç duruma dönüştürülmüştür: 0 - boşta (idle) 1 - __free_rcu() kuyruğa alındı 2 - __free_rcu() kuyruğa alındı ve o zamandan beri free_by_rcu_ttrace daha fazla nesne aldı do_call_rcu_ttrace() değerini 2 olarak ayarlar. __free_rcu() cmpxchg(1 -> 0) işlemini gerçekleştirir ve başarısız olduğunda bir sonraki GP'yi başlatır. Bayrağı önce temizleyip ardından free_by_rcu_ttrace kontrolü yapamaz, çünkü bpf_mem_alloc_destroy(), bayrak sıfır olduğunda RCU geri çağırmalarını beklemeden bpf_mem_cache kısmını serbest bırakır. Artık __free_rcu() kendisini kuyruğa alır, böylece 'boşaltmayı' görmeyen işlem, free_mem_alloc() içindeki rcu_barrier_tasks_trace() işleminden sonra call_rcu_tasks_trace() gerçekleştirebilir. Bunu rcu_read_lock() altında kuyruğa alın ve bariyerlerden önce synchronize_rcu() işlemini gerçekleştirin. rcu_barrier_tasks_trace() fonksiyonunu iki kez çağırmak da işe yarasa da, birçok CPU üzerinde bir döngüde hash map oluşturmak ve yok etmek, her GP başına tek bir free_mem_alloc() seviyesine düşerek yavaşlar ve kworker'lar birikir.
Nasıl düzeltilir
Kaynaklarda bu zafiyet için düzeltilmiş sürüm ya da yama bağlantısı yok.
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| microsoft azl3_kernel_6.6.157.1-1 | Aralık belirtilmemiş | — |
| microsoft azl3_kernel_6.6.159.1-1 | Aralık belirtilmemiş | — |
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.