В процессорах Intel, выпущенных за последние 10 лет, обнаружена ошибка безопасности, которая заставила разработчиков Linux, Windows и macOS вносить существенные изменения в ядра этих систем, сообщает издание The Register.
На текущий момент поправки вносятся в систему виртуальной памяти ядра Linux. В Microsoft выпустили соответствующее обновление в сборках Windows 10 Insider Preview в ноябре и декабре. В стабильном релизе исправления будут доступны в ближайший «вторник патчей». Сообщается, что эти обновления приводят к снижению производительности систем, построенных на чипах Intel, на 5-30% в зависимости от задач и используемого процессора. Например, в более новых версиях процессоров Intel есть функция PCID, позволяющая уменьшить это влияние.
Подробности уязвимости пока не разглашаются, по крайней мере, до момента выпуска исправлений. Однако нам удалось узнать некоторые детали. Ошибка, присутствующая в процессорах Intel последнего десятилетия, позволяет обычным программам — от приложений для работы с базами данных до JavaScript в браузерах — получать доступ к содержимому в защищенных участках памяти ядра. Исправление заключается в том, чтобы разделить адресные пространства ядра и пользователя, используя KPTI (Kernel Page Table Isolation).
Недостатком этого разделения является то, что для поддержки переключения между двумя отдельными адресными пространствами для каждого системного вызова и для каждого аппаратного прерывания требуется больше времени. Это заставляет процессор выгружать кэшированные данные и загружать информацию из памяти, что в свою очередь увеличивает нагрузку и замедляет работу компьютера.
Между тем, компания AMD официально заявила, что её процессоры не подвержены данной уязвимости.
Тупо 20 % слили в трубу.
Из-за сильного влияния на производительность разработчики патча предусмотрели опцию для отключения KPTI, которая активируется через передачу параметра «nopti» при загрузке ядра.