CVE-2026-23352
Açıklama
Linux kernel içerisinde aşağıdaki güvenlik açığı giderilmiştir: x86/efi: önyükleme servisleri belleğinin serbest bırakılması ertelendi efi_free_boot_services(), EFI_BOOT_SERVICES_CODE ve EFI_BOOT_SERVICES_DATA tarafından kullanılan belleği memblock_free_late() kullanarak serbest bırakır. Bununla ilgili iki sorun bulunmaktadır: memblock_free_late(), memblock_alloc() ile ayrılan bellekler için kullanılmalıdır; oysa memblock_reserve() ile ayrılan belleklerin free_reserved_area() ile serbest bırakılması gerekir. Daha kritik olanı ise, CONFIG_DEFERRED_STRUCT_PAGE_INIT=y seçeneğiyle, efi_free_boot_services() fonksiyonu bellek haritasının ertelenmiş başlatma işlemi tamamlanmadan önce çağrılmaktadır. Benjamin Herrenschmidt, bu durumun yalnızca 512 MB RAM'e sahip olan EC2 t3a.nano örneklerinde yaklaşık 140 MB RAM sızıntısına neden olduğunu bildirmiştir. Serbest bırakılan bellek, bellek haritasının henüz başlatılmadığı alanlarda yer alıyorsa, gerçek anlamda serbest bırakılmazlar çünkü memblock_free_late(), memblock_free_pages() fonksiyonunu çağırır ve ikincisi başlatılmamış sayfaları atlar. Bu noktada free_reserved_area() kullanmak da sorunludur çünkü __free_page(), serbest bırakılan sayfanın buddy yapısına erişir ve bu da yine bellek haritasının başlatılmamış kısmına denk gelebilir. Tüm efi_free_boot_services() işlemini ertelemek sorunlu olabilir çünkü önyükleme servisleri belleğini serbest bırakmanın yanı sıra, herhangi bir senkronizasyon olmadan efi.memmap bilgisini günceller ve bu durum eşzamanlılığın olduğu önyüklemenin geç aşamalarında istenmeyen bir durumdur. Daha sağlam yaklaşım, yalnızca EFI önyükleme servisleri belleğinin serbest bırakılmasını ertelemektir. efi_free_boot_services() ikiye bölünmüştür. İlk olarak efi_unmap_boot_services(), serbest bırakılması gereken aralıkları bir dizide toplar, ardından efi_free_boot_services() ertelenmiş başlatma işlemi tamamlandıktan sonra bunları serbest bırakır.
Nasıl düzeltilir
- linux linux_kernel5.10.253, 5.15.203, 6.1.167, 6.6.130, 6.12.77, 6.18.17, 6.19.7 ya da sonraki bir sürüm
- git.kernel.org/stable/c/227688312fece0026fc67a00ba9a0b3611ebe95d
- git.kernel.org/stable/c/399da820ecfe6f4f10c143e5c453d3559a04db9c
- git.kernel.org/stable/c/4a2cb90c538f06c873a187aa743575d48685d7a6
- git.kernel.org/stable/c/6a25e25279282c5c8ade554c04c6ab9dc7902c64
- git.kernel.org/stable/c/6d8ba221e7aafaa2f284b7d22faee814c28e009d
- git.kernel.org/stable/c/7131bd1fecc749bc94fb44aae217bbd8a8a85264
- git.kernel.org/stable/c/7dcf59422a3b0d20ddda844f856b4a1e0608a326
- git.kernel.org/stable/c/a4b0bf6a40f3c107c67a24fbc614510ef5719980
- git.kernel.org/stable/c/f9e9cc320854a76a39e7bc92d144554f3a727fad
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| linux linux_kernel | 3.0.1 ≤ v < 5.10.253, 5.11 ≤ v < 5.15.203, 5.16 ≤ v < 6.1.167, 6.2 ≤ v < 6.6.130, 6.7 ≤ v < 6.12.77, 6.13 ≤ v < 6.18.17, 6.19 ≤ v < 6.19.7, 2.6.39.1, 3.0, 7.0 | 5.10.253, 5.15.203, 6.1.167, 6.6.130, 6.12.77, 6.18.17, 6.19.7 |
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.