Четырехбайтовый баг записи и тайминга позволил исследователям выполнять код в анклаве Windows SmartScreen

Windows безопасность уязвимость анклав пароли thehackernews.com

Исследователи взломали защищенный анклав Windows, хранящий пароли. Узнайте, как это удалось и как Microsoft исправила уязвимость.

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

Всегда имейте в виду, что редакции могут придерживаться предвзятых взглядов в освещении новостей.

В тренде:

Похожие новости: