Skip to content

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):

  1. 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.
  2. 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.
  3. Transient gadget ayrıcalıklı memory'yi okur ve bir secret'ı bir microarchitectural channel'a (örn. cache) encode eder.
  4. 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.

References