CVE-2023-52447
Açıklama
Linux çekirdeğinde aşağıdaki güvenlik açığı giderilmiştir: bpf: Gerektiğinde iç haritanın serbest bırakılmasını erteleyin Bir map array veya map htab içindeki bir iç harita güncellendiğinde veya silindiğinde, haritaya uykuya dalamayan (non-sleepable) veya uyuyabilen (sleepable) programlar tarafından hala erişiliyor olabilir. Ancak bpf_map_fd_put_ptr(), bpf_map_put() aracılığıyla doğrudan iç haritanın referans sayacını düşürür; eğer bu son referans ise (çoğu durumda öyledir), iç harita bir kworker içinde ops->map_free() tarafından serbest bırakılır. Fakat şu anda çoğu .map_free() geri çağırma fonksiyonu, bir RCU lütuf döneminin geçmesini beklemek için synchronize_rcu() veya varyantlarını kullanmamaktadır; bu nedenle ops->map_free() çağrısı tamamlandıktan sonra, iç haritaya erişen bpf programı serbest bırakıldıktan sonra kullanım (use-after-free) sorunu yaşayabilir. İç haritanın daha önce dış haritadan kaldırılmış olması durumunda, hem bir RCU lütuf dönemi hem de bir tasks trace RCU lütuf döneminden sonra bpf_map_free_deferred() çağrılarak iç haritanın serbest bırakılması işlemi düzeltilmiştir. Erteleme işlemi, bpf map'in son referans sayacı serbest bırakılırken call_rcu() veya call_rcu_tasks_trace() kullanılarak gerçekleştirilir. bpf_map yapısına yeni eklenen rcu_head alanı, bpf_map boyutunu azaltmak için work alanı ile aynı depolama alanını paylaşır.
Nasıl düzeltilir
- linux linux_kernel5.10.214, 5.15.153, 6.1.75, 6.6.14, 6.7.2 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 | 5.9.0 ≤ v < 5.10.214, 5.11 ≤ v < 5.15.153, 5.16 ≤ v < 6.1.75, 6.2 ≤ v < 6.6.14, 6.7 ≤ v < 6.7.2 | 5.10.214, 5.15.153, 6.1.75, 6.6.14, 6.7.2 |
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.