Уязвимости · 3 min read · Sep 29, 2025
Исследователь Google обнаруживает уязвимость повышения привилегий в Windows 8.1

Исследователь Google обнаруживает ошибку повышения привилегий в Windows 8.1, 32/64 битные версии.
Исследователь Google по имени Форшоу обнаружил ошибку повышения привилегий в Windows 8.1. Ошибка в ahcache.sys/NtApphelpCacheControl возникла после обновления Windows 8 до Windows 8.1 и была найдена Форшоу в сентябре 2014 года. Он уведомил рассылку Google Security Research об ошибке 30 сентября, и после 90-дневного срока раскрытия недостатка и доказательства концепции были опубликованы вчера.
Команда исследователей Google связалась с Microsoft по поводу ошибки в тот же день, когда была обнаружена уязвимость, но нет никаких указаний на то, что были предприняты какие-либо действия по этому вопросу. Форшоу также заявил в рассылке, что он протестировал PoC только на 8.1 и не знает, уязвима ли Windows 7.
Уязвимость идентифицируется в функции ahcache.sys/AhcVerifyAdminContext. Доказательство концепции включает два файла программы и набор инструкций для его выполнения, что приводит к запуску калькулятора Windows от имени администратора. Форшоу утверждает, что ошибка не в самом UAC, но что UAC используется частично для демонстрации ошибки.
У Microsoft есть большая проблема с этой уязвимостью, так как она выпускает свои основные патчи во второй вторник месяца. На данный момент у Microsoft есть два варианта:
- Исправить это к следующему патч-вторнику.
- Выпустить внеплановый патч (обычно это плохой знак 0day).
Следующий патч-вторник назначен на 13.01.2015, и если будет выпущен патч до этого, можно предположить, что это уязвимость нулевого дня.
Вся тема воспроизведена ниже:
Платформа: Windows 8.1 Update 32/64 бит (Другие ОС не тестировались) В обновлении Windows 8.1 системный вызов NtApphelpCacheControl (код фактически находится в ahcache.sys) позволяет кэшировать данные совместимости приложений для быстрого повторного использования при создании новых процессов. Обычный пользователь может запрашивать кэш, но не может добавлять новые кэшированные записи, так как операция ограничена администраторами. Это проверяется в функции AhcVerifyAdminContext. Эта функция имеет уязвимость, так как она неправильно проверяет токен имперсонации вызывающего, чтобы определить, является ли пользователь администратором. Она считывает токен имперсонации вызывающего с помощью PsReferenceImpersonationToken и затем сравнивает SID пользователя в токене с SID LocalSystem. Она не проверяет уровень имперсонации токена, поэтому возможно получить токен идентификации на вашем потоке из локального системного процесса и обойти эту проверку. Для этой цели PoC злоупотребляет службой BITS и COM, чтобы получить токен имперсонации, но, вероятно, есть и другие способы. Затем это просто вопрос нахождения способа эксплуатации уязвимости. В PoC создается запись кэша для исполняемого файла с автоматическим повышением UAC (например, ComputerDefaults.exe) и настраивается кэш, чтобы указывать на запись совместимости приложения для regsvr32, что заставляет шиму RedirectExe перезагрузить regsvr32.exe. Однако любой исполняемый файл может быть использован, трюк будет заключаться в нахождении подходящей предсуществующей конфигурации совместимости приложения для злоупотребления. Неясно, уязвима ли Windows 7, так как кодовый путь для обновления имеет проверку привилегий TCB (хотя, похоже, в зависимости от флагов это может быть обходимо). Не было предпринято никаких усилий для проверки этого на Windows 7. ПРИМЕЧАНИЕ: Это не ошибка в UAC, это просто использование автоматического повышения UAC в демонстрационных целях. PoC был протестирован на обновлении Windows 8.1, как 32-битной, так и 64-битной версиях. Я бы рекомендовал запускать на 32-битной, чтобы быть уверенным. Для проверки выполните следующие шаги: 1) Поместите AppCompatCache.exe и Testdll.dll на диск
- Убедитесь, что UAC включен, текущий пользователь является администратором с разделенным токеном, а настройка UAC по умолчанию (без запроса для конкретных исполняемых файлов).
- Выполните AppCompatCache из командной строки с командой “AppCompatCache.exe c:\windows\system32\ComputerDefaults.exe testdll.dll”.
- Если успешно, то калькулятор должен появиться, работающий от имени администратора. Если это не сработает с первого раза (и вы получите программу ComputerDefaults), повторно запустите эксплойт с 3, иногда возникает проблема с кэшированием/временем при первом запуске. Эта ошибка подлежит 90-дневному сроку раскрытия. Если 90 дней истекут
без широко доступного патча, то отчет об ошибке автоматически
станет видимым для общественности.
Другой пользователь заявил, что Windows 10 не уязвима для этой уязвимости, в то время как другой поставил под сомнение политику Google по публичному раскрытию такой ошибки без одобрения Microsoft. Тема и PoC доступны здесь.
Get new posts in your inbox
No spam. Unsubscribe anytime.