1,3K подписчиков

Linux 6.8 x86 / срочное обновление Повышает защиту от ошибок процессора


 "x86 / срочный" запрос на извлечение перед ядром Linux 6.8-rc6, который будет выпущен позже сегодня, представляет собой набор исправлений от Intel, гарантирующих, что очистка буферов процессора с использованием инструкции VERW происходит в самой последней возможной точке пути возврата кода в пространство пользователя. Это делается для лучшей защиты от ошибок процессора, таких как микроархитектурная выборка данных (MDS).

В последние несколько месяцев инженеры Intel Linux работали над тем, чтобы отложить VERW для очистки микроархитектурных буферов процессора на более поздний этап кодирования возврата процессора в пространство пользователя. Инженер Intel Паван Гупта объяснил это в исправлениях:
Устаревшая инструкция VERW была перегружена некоторыми процессорами для очистки микроархитектурных буферов ЦП в качестве смягчения ошибок ЦП. Эта серия переносит выполнение VERW на более поздний этап на пути выхода к пользователю. Это необходимо, потому что в некоторых случаях может оказаться возможным доступ к данным ядра после VERW в arch_exit_to_user_mode(). Такой доступ может привести к помещению данных в буферы процессора, подверженные MDS, например:

1. Данные ядра, к которым обращается NMI между VERW и return-to-user, могут оставаться в буферах процессора (поскольку NMI, возвращающийся в ядро, не выполняет VERW для очистки буферов процессора).
2. Алисса сообщила, что после выполнения VERW CONFIG_GCC_PLUGIN_STACKLEAK=y очищает стек, используемый системным вызовом. Обращения к памяти во время очистки стека могут переместить содержимое стека ядра в буферы процессора.
3. Когда сохраненные регистры вызывающего устройства восстанавливаются после возврата из функции, выполняющей VERW, обращения к стеку ядра могут оставаться в буферах процессора (поскольку они происходят после VERW).

Хотя эти случаи менее практичны в использовании, перемещение VERW ближе к кольцевому переходу уменьшает поверхность атаки.

Это может привести к некоторым незначительным изменениям производительности в результате задержки очистки VERW. Основное внимание в серии исправлений с "ошибками процессора", по-видимому, уделяется атакам по побочным каналам микроархитектурной выборки данных (MDS), раскрытым несколько лет назад.
Linux 6.8 x86 / срочное обновление Повышает защиту от ошибок процессора   "x86 / срочный" запрос на извлечение перед ядром Linux 6.