CVE-2025-37936
Açıklama
Linux kernel içerisinde aşağıdaki güvenlik açığı giderilmiştir: perf/x86/intel: KVM: Guest için yüklenen PEBS_ENABLE değeri vCPU değeri ile maskeleniyor. Bir KVM guest'ine VM-Entry sırasında yüklenecek olan MSR_IA32_PEBS_ENABLE değeri oluşturulurken, değer vCPU'nun istenen PEBS_ENABLE değeri ile maskelenir. Yalnızca ana makine çekirdeğinin (host kernel) host ve guest maskelerine bakmak, guest PEBS kullanmak istemediğinde bile guest'in PEBS etkin şekilde çalışmasına neden olur. KVM, guest sanal PMU'sunu proxylemek için perf olaylarını kullandığından, sadece exclude_host parametresine bakmak; host kullanıcı alanı tarafından oluşturulan olaylar ile KVM tarafından guest adına oluşturulan olaylar arasındaki farkı ayırt edemez. Guest'in beklenmedik şekilde PEBS etkin olarak çalıştırılması, genellikle neredeyse sonsuz bir #PF akışı nedeniyle çökmeler şeklinde kendini gösterir. Örneğin, eğer guest MSR_IA32_DS_AREA değerini yazmamışsa, CPU PEBS olaylarını kaydetmeye çalışırken '0' adresinde sayfa hataları (page fault) alacaktır. Sorun, 7b100989b4f6 ("perf evlist: Remove __evlist__add_default") commit'inden önce `perf kvm top` komutu çalıştırılarak en kolay şekilde yeniden üretilebilir (`perf kvm top` bu işlemden sonra etkili bir şekilde PEBS kullanmayı durdurmuştur). Perf'ün kullanıcı alanı tarafı yalnızca guest'e özel bir PEBS olayı oluşturur ve intel_guest_get_msrs() bunu guest'e ait (*owned*) bir PEBS olayı olarak yanlış yorumlar. Yalnızca guest'e özel olaylarda PEBS'in etkinleştirilmesinin çalışamayacağı ve kullanıcı alanının VM'leri başka birçok yolla sonlandırabileceği (ana makine için herhangi bir tehlike yoktur) göz önüne alındığında, bunun bir kullanıcı alanı hatası olduğu savunulabilir. Ancak, bu durum kötü bir kullanıcı alanı davranışı olarak kabul edilse bile, perf/KVM'nin PEBS'i yalnızca guest'e ait olaylarla sınırlandırmasının hiçbir dezavantajı yoktur. Not olarak, 854250329c02 ("KVM: x86/pmu: Disable guest PEBS temporarily in two rare situations") commit'i, host kullanıcı alanının hem KVM'yi hem de kullanıcı alanını profillediği durumu düzeltmiş ancak kullanıcı alanının yalnızca KVM'yi profillediği durumu gözden kaçırmıştır.
Nasıl düzeltilir
- linux linux_kernel6.1.138, 6.6.90, 6.12.28, 6.14.6 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 | 6.0 ≤ v < 6.1.138, 6.2 ≤ v < 6.6.90, 6.7 ≤ v < 6.12.28, 6.13 ≤ v < 6.14.6, 6.15 | 6.1.138, 6.6.90, 6.12.28, 6.14.6 |
| debian debian_linux | 11.0 | — |
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.