Январские и февральские исправления Microsoft остановили ошибку Meltdown, которая позволяла с помощью изощрённых методов получать пароли из защищённой памяти. Однако исследователь безопасности Ульф Фриск (Ulf Frisk) обнаружил, что исправления открыли гораздо худшую ошибку ядра, которая позволяет любому процессу читать и записывать в любое место памяти ядра.
По словам специалиста, проблема затрагивает только 64-битные операционные системы Windows 7 x64 и Windows Server 2008 R2. Он утверждает, что две заплатки ошибочно устанавливали бит в трансляторе виртуальной-физической памяти, известном как PLM4 (карта страниц четвёртого уровня), что в итоге позволяет пользовательскому приложению обращаться к таблицам страниц ядра.
Модуль управления памятью процессора (MMU) Intel использует эту базу 4-уровневой иерархии таблиц страниц для трансляции виртуального адреса процесса в адрес физической памяти ОЗУ. Правильно установленный бит обычно гарантирует, что ядро имеет эксклюзивный доступ к этим таблицам — в обычных условиях пользователю они недоступны.
В результате, по словам господина Фриска, ошибка делает предельно лёгкой задачу доступа к физической памяти, поскольку в Windows 7 таблица страниц PML4 находится на фиксированном адресе памяти (в Windows 10 адрес случаен). Эта ситуация означает, что злоумышленник также сможет без труда найти таблицу страниц Windows 7, которая доступна всем пользовательским приложениям.
В результате эксплоиту не нужно делать никакой лишней работы — можно просто считывать уже сопоставленную память нужного процесса, если только физическая память дополнительно не защищена расширенными страницами таблиц (EPT), используемыми для виртуализации. Microsoft, кстати, уже исправила ошибку в мартовском обновлении безопасности, переназначив бит разрешения PML4 в правильное значение. Поэтому всем пользователям Windows 7 и Windows Server 2008 R2 рекомендуется немедленно обновиться. Windows 10 и Windows 8.1 не были затронуты проблемой.