Jądro Linuksa od zeszłego roku omyłkowo pozostawiło systemy polegające na oryginalnym Indirect Branch Restricted Speculation (IBRS) do łagodzenia skutków Spectre V2 bez pokrycia Single Threaded Indirect Branch Predictor (STIBP) dla cross-HyperThread zajmującego się tą luką w zabezpieczeniach Spectre. W przygotowaniu jest poprawka, która rozwiązuje ten problem dla systemów z ery Intel Skylake.
Od czasu połączenia zmian w czerwcu zeszłego roku i wprowadzenia ich do Linuksa 5.19-rc2, nie ma obsługi STIBP, gdy włączony jest IBRS (oryginalny, nie mylić z Intel eIBRS). Łatka rozwiązująca ten problem wyjaśnia:
„Kiedy włączony jest zwykły IBRS (nie rozszerzony IBRS), logika w spectre_v2_user_select_mitigation() określa, że STIBP nie jest potrzebny.
Bit IBRS niejawnie chroni przed wstrzyknięciem celu gałęzi między wątkami. Jednak w przypadku starszego IBRS bit IBRS jest kasowany po powrocie do przestrzeni użytkownika ze względu na wydajność, co pozostawia wątki przestrzeni użytkownika podatne na wstrzyknięcie celu gałęzi między wątkami, przed którym chroni STIBP.
Wyklucz IBRS ze sprawdzania spectre_v2_in_ibrs_mode(), aby umożliwić włączenie STIBP (domyślnie przez seccomp/prctl() lub zawsze włączone, jeśli wybrano przez parametr cmdline jądra spectre_v2_user).”
W celu ochrony wątków przestrzeni użytkownika za pomocą STIBP ta poprawka autorstwa inżyniera Google, KP Singha, jest pod kontrolą eview, aby umożliwić włączenie STIBP w „starszym” IBRS. Ponownie, dotyczy to tylko starszych procesorów polegających na zwykłym IBRS, takim jak te z projektów pochodzących ze Skylake/Skylake. Łatka jest już oznaczona do przeniesienia z powrotem do stabilnej serii jądra Linuksa, a także po jej wprowadzeniu.
Dla tych, którzy używają zwykłych systemów IBRS, w Linuksie 6.2 dostępna jest również nowa funkcja śledzenia głębokości połączeń, która jest tańsza niż IBRS w celu złagodzenia Spectre V2. Jednak skumulowane koszty wydajności dla wszystkich tych różnych środków zaradczych, szczególnie w starszych systemach z ery Skylake, pozostają dość wysokie.