В пространстве пользователя для защиты от атак класса Spectre процессы могут выборочно отключать спекулятивное выполнение инструкций при помощи prctl PR_SET_SPECULATION_CTRL или использовать фильтрацию системных вызовов на базе механизма seccomp. По данным выявившую проблему исследователей некорректная оптимизация в ядре 6.2 оставила без должной защиты виртуальные машины как минимум одного крупного облачного провайдера, несмотря на включение режима блокирования атак spectre-BTI через prctl. Уязвимость также проявляется и на обычных серверах с ядром 6.2, при загрузке которых используется настройка «spectre_v2=ibrs».
Суть уязвимости в том, что при выборе режимов защиты IBRS или eIBRS внесённые оптимизации отключали применение механизма STIBP (Single Thread Indirect Branch Predictors), необходимого для блокирования утечек при применении технологии одновременной многопоточности (SMT или Hyper-Threading). При этом защиту от утечки между потоками обеспечивает только режим eIBRS, но не режим IBRS, так как при нём бит IBRS, обеспечивающий защиту от утечек между логическим ядрами, из соображений производительности очищается при возвращении управления в пространство пользователя, что делает потоки в пространстве пользователя не защищёнными от атак класса Spectre v2.
Источник: http://www.opennet.ru/opennews/art.shtml?num=58981