CVE-2026-97943
Açıklama
Linux kernel'da aşağıdaki güvenlik açığı giderilmiştir: x86/mm/pat: UAF'yi önlemek için daraltma sırasında init_mm yazma kilidini edinin x86, sayfa öznitelik değişikliğini Change Page Attributes (CPA) mekanizmasını kullanarak uygular. Bu mekanizma, x86 sayfa öznitelikleri aracılığıyla önbellek modu gibi aralıkların özelliklerini takip eder ve bu mantığın bir parçası olarak çekirdek sayfa tablolarını yönetir. Şu commit'ten beri: 41d88484c71c ("x86/mm/pat: restore large ROX pages after fragmentation") çekirdek sayfa tablosu girişleri aralıkları, bu mantığın bir parçası olarak devasa sayfa tablosu girişlerine daraltılabilir. Bu daraltmanın bir parçası olarak, daraltılan girişlerin daha önce işaret ettiği sayfa tabloları serbest bırakılır; ancak bunu yaparken eşzamanlı çekirdek sayfa tablosu yürütücülerini engellemek için ilgili hiçbir kilit tutulmaz. Bu kodun çalıştırılabilmesinin tek yolu CPA_COLLAPSE'in belirtilmiş olmasıdır ve bu yalnızca set_memory_rox() üzerinden şu şekilde ayarlanır: set_memory_rox() -> change_page_attr_set_clr() -> cpa_flush() -> cpa_collapse_large_pages() Bunun dikkat çeken kullanıcıları, yürütülebilir eşlemeleri yönetirken execmem ve BPF'dir. Ancak bu durum, sahip olmadığı aralıklarda yürüme işlemi yapan ptdump için sorunludur ve böylece altında serbest bırakılan sayfa tablolarında bir serbest bırakıldıktan sonra kullanım (UAF) riski oluşturur. Ek olarak, yarış durumlarına da neden olabilecek eşzamanlı CPA daraltma işlemleri mümkündür. Sorun, tüm işlem boyunca init_mm üzerindeki mmap yazma kilidi edinilerek çözülmüştür. Tüm çağırıcılar set_memory_rox()'u süreç bağlamından çağırdığı için uyku modundaki bir kilidin edinilmesi güvenlidir ve her durumda change_page_attr_set_clr(), nihayetinde bir mutex alan vm_unmap_alias()'ı çağırarak burada atomik bağlama izin vermez.
Nasıl düzeltilir
- Linux Linux35820cf8dd521f5a651e221483015b0586794516, 93b98882198b15bd482da1fe8e84b05c7c3b3d83, a1c7570cedd03372812a5b693732880867babbca ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| Linux Linux | 41d88484c71cd4f659348da41b7b5b3dbd3be1f6 ≤ v < 35820cf8dd521f5a651e221483015b0586794516, 41d88484c71cd4f659348da41b7b5b3dbd3be1f6 ≤ v < 93b98882198b15bd482da1fe8e84b05c7c3b3d83, 41d88484c71cd4f659348da41b7b5b3dbd3be1f6 ≤ v < a1c7570cedd03372812a5b693732880867babbca, 6.15 | 35820cf8dd521f5a651e221483015b0586794516, 93b98882198b15bd482da1fe8e84b05c7c3b3d83, a1c7570cedd03372812a5b693732880867babbca |
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.