CVE-2026-68093
Açıklama
Linux kernel içerisinde aşağıdaki güvenlik açığı giderilmiştir: KVM: SVM: Hotplug sonrası ASID çakışmasını önlemek için CPU online durumunda asid_generation artırılıyor Eğer bir vCPU, üzerinde çalıştığı son pCPU bir hotplug döngüsünden (online->offline->online) geçerken zamanlanmış olarak dışarıda kalırsa (veya engellenirse) ve ardından vCPU aynı pCPU üzerinde yürütmeye devam ederse; şu an farklı bir vCPU'ya atanmış olan bir ASID ile çalışması mümkündür ve bu durum bayat TLB çevirilerinin kullanılmasıyla sonuçlanır. svm_enable_virtualization_cpu(), hotplug döngüleri de dahil olmak üzere her CPU online olayında asid_generation değerini 1'e sıfırlar ve next_asid değerini max_asid + 1 olarak ayarlar. next_asid havuz sınırının ötesinden başladığı için, bir online olayından sonraki ilk new_asid() çağrısı her zaman havuzu döndürür, asid_generation değerini 2'ye çıkarır ve min_asid'den başlayarak ASID'ler atar. Farklı VM'lerden gelen iki vCPU düşünün; vCPU-A, hotplug olayından önce asid_generation=2 ve ASID=N değerlerini tutarken CPU-X'e sabitlenmiştir: 1. CPU-X offline olur ve tekrar online hale gelir: asid_generation 1'e sıfırlanır, next_asid = max_asid + 1 olur. 2. Bir veya daha fazla vCPU, CPU-X'e göç eder ve new_asid() fonksiyonunu çağırarak havuzu döndürür ve min_asid'den başlayarak ASID'leri tüketir. Sonunda, farklı bir VM'den gelen vCPU-B'ye asid_generation=2, ASID=N atanır — yani vCPU-A'nın hotplug öncesinde sahip olduğu ASID ile aynıdır. 3. vCPU-A, CPU-X üzerinde pre_svm_run() aşamasına girer: current_vmcb->cpu değişmediği için göç dalı atlanır. Kaydedilen asid_generation=2 değeri, sd->asid_generation=2 ile eşleştiğinden nesil kontrolü sessizce geçer ve vCPU-A, az önce vCPU-B'ye yeni atanmış olan ASID=N ile çalışmaya devam eder. Farklı VM'lerden gelen her iki vCPU artık CPU-X üzerinde aynı ASID ile çalışmakta, bu da NPT TLB girişlerini paylaşmalarına neden olmakta ve bayat çeviriler üretmektedir. Çakışma, bir KVM dahili hatası (Suberror: 1, emülasyon hatası) olarak ortaya çıkar. NPT sayfa hatası, VM'nin fiziksel bellek aralığının çok dışında hatalı bir GPA raporlar — bu, bayat TLB çevirilerinin kullanıldığının bir işaretidir. KVM, emülatörün uygulamadığı FPU/XSave talimatlarında (XRSTOR, STMXCSR) başarısız olan talimat emülasyonuna geri döner. Bu sorun, svm_enable_virtualization_cpu() içerisinde asid_generation değerini 1'e sıfırlamak yerine artırarak düzeltilir. Modül yüklendiğinde asid_generation 0'dan başlar (memset) ve artırım işlemi eski davranışla aynı şekilde 1 sonucunu üretir. Sonraki hotplug döngülerinde nesil, bir vCPU'nun bu CPU'da daha önce gözlemlediği herhangi bir değerin ötesine geçer; böylece pre_svm_run() içindeki nesil kontrolü, her hotplug döngüsünden sonra her vCPU için new_asid() çağrılmasını güvenilir bir şekilde zorunlu kılar.
Nasıl düzeltilir
- Linux Linux2028b81321dc757b6875b99c10d908e349c141e2, 60283726f2845bd78b95efbd0e50b93944780477, 7508916b4b55d6f5ecc68cd09774dabd3a6b4440, 0f33b1c457c2199ed130b92cc2ff363a3f7b9415, 6b542d116acecb83a1ca34e8eace304cff6a4ec9, 25f744ffa0c8e799e06250ce2e618367b166b0d4 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| Linux Linux | 774c47f1d78e373a6bd2964f4e278d1ce26c21cb ≤ v < 2028b81321dc757b6875b99c10d908e349c141e2, 774c47f1d78e373a6bd2964f4e278d1ce26c21cb ≤ v < 60283726f2845bd78b95efbd0e50b93944780477, 774c47f1d78e373a6bd2964f4e278d1ce26c21cb ≤ v < 7508916b4b55d6f5ecc68cd09774dabd3a6b4440, 774c47f1d78e373a6bd2964f4e278d1ce26c21cb ≤ v < 0f33b1c457c2199ed130b92cc2ff363a3f7b9415, 774c47f1d78e373a6bd2964f4e278d1ce26c21cb ≤ v < 6b542d116acecb83a1ca34e8eace304cff6a4ec9, 774c47f1d78e373a6bd2964f4e278d1ce26c21cb ≤ v < 25f744ffa0c8e799e06250ce2e618367b166b0d4, 2.6.21 | 2028b81321dc757b6875b99c10d908e349c141e2, 60283726f2845bd78b95efbd0e50b93944780477, 7508916b4b55d6f5ecc68cd09774dabd3a6b4440, 0f33b1c457c2199ed130b92cc2ff363a3f7b9415, 6b542d116acecb83a1ca34e8eace304cff6a4ec9, 25f744ffa0c8e799e06250ce2e618367b166b0d4 |
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.