Исследователи выполнили свой код внутри защищённого анклава Windows SmartScreen
Исследователи из компании Doyensec сумели запустить собственный код внутри области Windows, которая по замыслу должна оставаться недосягаемой даже тогда, когда атакующий уже захватил всю остальную систему. Речь идёт о VBS-анклаве — изолированном фрагменте памяти, где операционная система хранит секреты.
Взломанный анклав отвечает за пароли одной из функций защиты. Это SFAPE.dll — компонент Enhanced Phishing Protection в Microsoft Defender SmartScreen. Функция следит за тем, что пользователь вводит или вставляет, и предупреждает, если он набирает пароль от учётной записи Windows в небезопасном месте — например, в «Блокноте» или на фишинговой странице. Чтобы не хранить пароль открыто, Windows перехватывает его при входе и держит в виде хеша внутри анклава. На Windows 11 этот анклав загружает процесс lsass.exe, работающий с правами SYSTEM.
Что такое анклав и почему это важно
VBS-анклав — это подписанная библиотека, которую обычная программа загружает, но после запуска не может ни прочитать, ни изменить. Гипервизор Windows держит её память в более доверенной среде (VTL1, Isolated User Mode), куда код обычного мира (VTL0) не дотягивается. Защита рассчитана на случай, когда злоумышленник уже контролирует ядро или действует как SYSTEM. Именно поэтому выполнение произвольного кода внутри такой среды и считается примечательным результатом.
Атака не работает удалённо: нужна программа, которая уже запущена на машине и обращается к анклаву (для SFAPE это LSASS). Microsoft классифицирует уязвимость (CVE-2026-83498) как локальное повышение привилегий критического уровня с оценкой CVSS 7.8. По сути это способ для кода, уже получившего плацдарм, дотянуться до соседнего доверенного мира.
Цепочка из мелкой ошибки
DoyenSec начала с небольшого изъяна и постепенно расширила его. Повторный вызов функции Initialize заставляет анклав записать фиксированное четырёхбайтовое значение ошибки по адресу, который задаёт вызывающая программа, пропуская проверку адреса, выполняемую при первом вызове. Сами исследователи признают, что называть это «произвольной записью» было бы сильным преувеличением. Но при точном попадании эта запись портит значение, по которому анклав отличает свою память от памяти хоста, и защитная проверка перестаёт работать. Дальше ошибка таймингов в другой функции запускает управляемую очистку, та перенаправляет поиск хранимого объекта, и это позволяет подменить таблицу, решающую, какой код анклаву разрешено исполнять.
Работа сломала изоляцию анклава, но не показала, что пароль пользователя был прочитан или похищен.
Исправление и оставшаяся брешь
Microsoft устранила проблему в кумулятивном обновлении от 8 сентября 2026 года (KB5124008) для Windows 11 версий 24H2 и 25H2; компания утверждает, что нашла ту же ошибку самостоятельно и что в реальных атаках она не применялась. Патч добавляет проверку адреса и запрещает загрузку старой уязвимой версии анклава.
Одна проблема переживёт это исправление. В Windows нет общего чёрного списка уязвимых анклавов, какой есть для драйверов, а сентябрьская политика блокирует только старый файл SFAPE. Более ранний анклав Microsoft Edge со схожим изъяном (CVE-2023-36880) по-прежнему разрешён к загрузке. Это оставляет открытым известный приём «принеси свой уязвимый анклав», которым пользовались исследователи Akamai и Outflank, чтобы прятать код от защитных средств.
Источник: The Hacker News
Комментарии
Войдите, чтобы комментировать.