CVE-2026-19574
Açıklama
ARM64 MMU arka ucu, arch_mem_domain_init() (arch/arm64/core/mmu.c) fonksiyonunda bellek alanları için adres alanı tanımlayıcılarını (ASID'ler) basit bir round-robin sayacı ile tahsis etmektedir. VM_ASID_BITS değeri 8 olduğundan yalnızca 255 ASID mevcuttur; sayaç başa döndüğünde, arch_mem_domain_init() hala aktif olan bir alanın sahip olduğu aynı ASID'yi yeni bir alana verebilmektedir. Alana özel eşlemeler global olmayan (MT_NG) şekilde kurulduğundan, TLB'de bir alanın önbelleğe alınmış çevirilerini diğerinden ayıran tek etiket ASID'dir. z_arm64_swap_ptables() içindeki bağlam değiştirme yolu, TLB'yi yalnızca giden ve gelen alanlar aynı ASID'ye sahip olduğunda temizlemektedir; bu durum üçüncü bir alan üzerinden ulaşılan yinelenenleri kapsamamaktadır: Bir ASID paylaşan A ve C alanları ile ilgisiz bir B alanı için, A -> B -> C zamanlaması hiçbir zaman temizleme dalına girmez, böylece A tarafından doldurulan ASID etiketli girdiler C çalışırken yerleşik kalmaya devam eder. SMP altında, bir ASID'yi paylaşan iki aktif alan ek olarak iki CPU üzerinde aynı anda yerleşik olabilir ki mimari, farklı çeviri tablosu setleri için buna izin vermemektedir. Saranın tetiklenmesi, yaşam döngüsü boyunca 255'ten fazla bellek alanı oluşturan ARM64 üzerindeki bir CONFIG_USERSPACE uygulaması gerektirir; k_mem_domain_init() ve k_mem_domain_deinit() yalnızca denetleyiciye açık API'lerdir ve sistem çağrıları olarak sunulmamışlardır, dolayısıyla ayrıcalıksız bir iş parçacığı sayacı doğrudan yönlendiremez. Ancak, iki aktif alan takma ad haline geldiğinde, bir alandaki kullanıcı modu iş parçacığı, diğer alanın bölümlerine ve iş parçacığı yığınlarına ait belleği o alanın izinleriyle okuyup yazabilir ve böylece bellek alanı izolasyon sınırını etkisiz hale getirebilir. Düzeltme, bir ASID atamadan önce aktif domain_list listesini tarar, round-robin sayacını halihazırda kullanımda olan ASID'lerin ötesine ilerletir ve tamamı alındığında -ENOMEM döndürür; böylece alan oluşturma işlemi sessizce takma ad oluşturmak yerine kapalı konumda başarısız olur.
Nasıl düzeltilir
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| zephyrproject zephyr | 3.3.0 ≤ v ≤ 4.4.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.