Training Solo (CVE-2024-28956, CVE-2025-24495)¶
Self-training Spectre-v2: bir victim domain kendi indirect-branch predictor'ını eğiterek, hardware domain isolation olsa bile cross-privilege branch-target injection'ı yeniden mümkün kılar; Indirect Target Selection (ITS) ve bir Lion Cove predictor açığı tarafından ortaya çıkarıldı.
Mechanism¶
Bug class / invariant
Post-Spectre-v2 savunmaları (eIBRS, IBPB, retpoline, mode-based isolation) bir domain isolation invariant'ına dayanır: daha az ayrıcalıklı bir domain'de eğitilmiş branch prediction'lar, daha ayrıcalıklı bir domain'deki indirect branch'leri yönlendirmemelidir. Training Solo, bu izolasyonun cross-domain bir attacker olmadan da bypass edilebileceğini gösterir, çünkü victim kendi kendini eğitir: hem training hem de mispredict edilmiş speculative execution aynı ayrıcalıklı domain (kernel/hypervisor) içinde olur. Bunu iki hardware sorunu mümkün kılar. Indirect Target Selection (ITS, CVE-2024-28956), bir direct branch'in bir indirect branch'in prediction'ını etkilemesine izin verir, böylece attacker'ın etkilediği indirect target'lar domain içinde prime edilebilir. Bir Lion Cove predictor bug'ı (CVE-2025-24495) benzer şekilde predictor state'in bir isolation boundary olması gereken sınırı aşmasına izin verir. Sonuç, klasik user→user, guest→guest ve hatta guest→host Spectre-v2'yi yeniden mümkün kılar.
Walkthrough¶
Üst düzey, VUSec'in Training Solo'sundan (disclose edildi, mitigate edildi):
- Ayrıcalıklı bir domain'in kendi branch'lerinin (ITS direct→indirect etkisiyle) aynı domain içindeki bir indirect branch'i mistrain edecek şekilde zorlanabildiği bir "self-training" gadget belirle.
- Ayrıcalıklı kodu, indirect branch'i speculative olarak attacker'ın seçtiği bir domain-içi gadget'a atlayacak şekilde sürükle.
- Transient gadget ayrıcalıklı memory'yi okur ve bir secret'ı bir microarchitectural channel'a (örn. cache) encode eder.
- Secret'ı cache timing ile recover et. VUSec yeni Intel CPU'larda uçtan uca kernel-memory sızıntısını ~17 KB/s'ye kadar raporladı.
Detection¶
- Transient sızıntılar architectural iz bırakmaz; detection channel'ı değil, harness'leri hedefler.
- Microcode ve OS mitigation'larının mevcut olduğunu doğrula (yokluğu, tespit
edilebilir asıl koşuldur). Linux mitigation durumunu
/sys/devices/system/cpu/vulnerabilities/altında gösterir (örn. spectre_v2 / its girdileri). - Olağandışı branch-mistraining loop'larını cache timing probe'larıyla ve sık privilege transition'larıyla birleştiren process'lere dikkat et.
Mitigation¶
- CVE-2024-28956 (ITS, 9.–11. nesil Core / 2.–3. nesil Xeon) ve CVE-2025-24495 (Lion Cove: Lunar Lake / Arrow Lake) için Intel microcode güncellemelerini uygula.
- Linux kernel patch'lerini ve uygun olduğunda hypervisor (KVM) güncellemelerini uygula; bazı konfigürasyonlar ayrıca BHI/IBPB hardening'inin enabled kalmasını gerektirir.
- Genel Spectre-v2 mitigation'larını (platforma göre tavsiye edildiği şekilde eIBRS/retpoline) enabled tut; güncellemelerden sonra durumu doğrula.