Skip to content

Indirect Target Selection mitigation

ITS (CVE-2024-28956, INTEL-SA-01153), bir cacheline'ın alt yarısındaki instruction'lara ait indirect-branch/RET tahminlerinin farklı bir branch'ten seçilebildiği, 2025'te açıklanan bir Intel branch-predictor kusurudur; kernel bunu aligned thunk'lar, retpoline'lar, RSB stuffing ve güncellenmiş microcode ile mitige eder.

Mechanism

Note

Bug'ın bozduğu şey: predictor eksik target/IP bit'leri üzerinden indeks aldığı için, instruction'ı bir cacheline'ın alt yarısında duran bir indirect branch'in (veya RET'in) tahmini farklı bir branch'ten seçilebilir. Bu, bir attacker'ın hardware Spectre-v2 mitigation'larına sahip parçalarda bile sınırlar arası gadget'lara ulaşmasını sağlar. Intel/kernel belgelerine göre üç şeyi etkiler: eIBRS altında guest/host isolation, kernel içi training yoluyla intra-mode BTI ve IBPB'nin etkinliği.

Mitigation'ın geri yüklediği invariant: zafiyetli indirect branch'ler ve RET'ler yanlış seçilemeyecek şekilde yeniden konumlandırılır — kernel onları bu tahminden güvenli cacheline pozisyonlarına taşır.

ITS, CVE-2024-28956'dır (CVSS 4.7, Medium); VU Amsterdam (VUSec) tarafından yürütülen "Training Solo" araştırmasının bir parçası olarak Mayıs 2025'te açıklandı. Debian tracker'a göre:

Exposure of Sensitive Information in Shared Microarchitectural Structures during Transient Execution for some Intel(R) Processors may allow an authenticated user to potentially enable information disclosure via local access.

Etkilenen: 9.–11. nesil Intel Core ve 2.–3. nesil Intel Xeon Scalable (Cascade Lake'den Ice Lake'e), Enhanced IBRS destekleyen parçalar; 12. nesil Core ve 4. nesil Xeon (Alder Lake / Sapphire Rapids) gibi BHI_CTRL'e sahip daha yeni CPU'lar bu aralığa dahil değildir. Intel Atom çekirdekleri etkilenmez.

Walkthrough

Kernel üç savunma uygular (ITS admin-guide belgesinden):

  • Aligned thunks — indirect branch'leri ve RET'leri güvenli cacheline pozisyonlarına yeniden konumlandırır.
  • Retpolineretpoline etkinken thunk'lar yalnızca zafiyetli RET'lere uygulanır, çünkü retpoline indirect branch'leri zaten korur.
  • RSB stuffingcall depth tracking / RSB stuffing, ITS'e karşı zafiyetli RET'leri kapsar.
Read the new vulnerabilities entry
$ cat /sys/devices/system/cpu/vulnerabilities/indirect_target_selection
Mitigation: Aligned branch/return thunks

Raporlanan diğer değerler arasında Not affected, Vulnerable ve Mitigation: Retpolines, Stuffing RSB bulunur.

Kernel command line parametresiyle kontrol et:

indirect_target_selection=on      # default
indirect_target_selection=off
indirect_target_selection=vmexit  # mitigate only the guest->host (VMEXIT) case
indirect_target_selection=stuff   # use RSB stuffing
indirect_target_selection=force   # force mitigation even if not enumerated

Warning

Tam mitigation, kernel değişikliklerine ek olarak güncellenmiş microcode gerektirir; Intel'in tavsiyesi, firmware/microcode güncellemesini sistem üreticisinden uygulamaktır. Kernel'in thunk/RSB stratejileri bunun üzerine katmanlanır.

Detection

Özel sysfs node'u /sys/devices/system/cpu/vulnerabilities/indirect_target_selection, affected/mitigation durumunu raporlar; oradaki Vulnerable, eksik microcode'a veya devre dışı bir mitigation'a işaret eder.

Mitigation

ITS, Spectre-v2 ailesinin geri kalanıyla yakından ilişkilidir: IBPB, (enhanced) IBRS, retpoline, Retbleed return thunk'ları ve RSB stuffing — hepsi mevcut microcode mitigations ile koşullanır.

References