CVE-2024-50182
Açıklama
Linux kernel içerisinde aşağıdaki güvenlik açığı giderilmiştir: secretmem: arch doğrudan eşleme (direct map) ayarlayamıyorsa memfd_secret() devre dışı bırakılır !can_set_direct_map() durumunda memfd_secret() sistem çağrısından -ENOSYS döndürülür. Bu durum örneğin bazı arm64 konfigürasyonlarında geçerlidir; burada doğrudan eşlemedeki 4k PTE'lerin mevcut olmadığı şeklinde işaretlenmesi, ancak doğrudan eşlemenin başlangıçta 4k granülaritesinde kurulmuş olması durumunda mümkündür (çünkü ARM'ın break-before-make semantiği büyük/devasa sayfaların kolayca bölünmesine izin vermez). Daha kesin olarak, !can_set_direct_map() olan arm64 sistemlerde set_direct_map_invalid_noflush() bir no-op işlemidir, ancak hata yerine başarı (0) döndürür. Bu, memfd_secret fonksiyonunun görünüşte "çalışacağı" (örneğin sistem çağrısı başarılı olur, fd'yi mmap yapabilir ve sayfalarda hata oluşmasını sağlayabilirsiniz) ancak belleğini doğrudan eşlemeden kaldırma amacına gerçekte ulaşamadığı anlamına gelir. Bu yama ile birlikte, can_set_direct_map() fonksiyonunun false döndürdüğü sistemlerde (CONFIG_RODATA_FULL_DEFAULT_ENABLED=n, CONFIG_DEBUG_PAGEALLOC=n ve CONFIG_KFENCE=n olan arm64 sistemler) memfd_secret() hata vermeye başlayacaktır, fakat bu durum mevcut sessiz başarısızlıktan daha iyi görünmektedir. CONFIG_RODATA_FULL_DEFAULT_ENABLED varsayılan olarak 'y' olduğu için çoğu arm64 sistemi aslında çalışan bir memfd_secret() özelliğine sahiptir ve etkilenmeyecektir. Orijinal memfd_secret yama serisinin iterasyonları incelendiğinde, bu senaryolarda sistem çağrısının devre dışı bırakılmasının amaçlanan davranış olduğu görülmektedir [1] (set_direct_map_invalid_noflush fonksiyonunun hata döndürmesi tercih edilmemiştir çünkü bu durum sayfa hatası sırasında SIGBUS hatalarına yol açardı); ancak bu kontrol, secretmem CMA tahsisatlarından uzaklaştığında v16 [2] ve v17 [3] arasında kaldırılmıştır. [1]: https://lore.kernel.org/lkml/[email protected]/ [2]: https://lore.kernel.org/lkml/[email protected]/#t [3]: https://lore.kernel.org/lkml/[email protected]/
Nasıl düzeltilir
- linux linux_kernel5.15.169, 6.1.113, 6.6.57, 6.11.4 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.14 ≤ v < 5.15.169, 5.16 ≤ v < 6.1.113, 6.2 ≤ v < 6.6.57, 6.7 ≤ v < 6.11.4, 6.12 | 5.15.169, 6.1.113, 6.6.57, 6.11.4 |
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.