Уязвимости в Avast Antivirus: песочница как путь для повышения привилегий

vulnerability

Исследователи кибербезопасности из SAFA обнаружили четыре критические уязвимости в ядре антивируса Avast для Windows. Проблемы, получившие идентификатор CVE-2025-13032, затрагивают драйвер "aswSnx.sys" в версиях продукта ранее 25.3. Эти уязвимости позволяют локальному злоумышленнику повысить свои привилегии в системе до уровня "SYSTEM", что является максимальным уровнем доступа в операционных системах Windows.

Детали уязвимости

В отличие от классических сценариев «побега из песочницы» (sandbox escape), когда вредоносная программа пытается вырваться из изолированной среды, эти уязвимости требуют обратного подхода. Атакующему необходимо сначала манипулировать настройками встроенной песочницы Avast, чтобы получить доступ к уязвимой поверхности атаки. Только после этого можно использовать уязвимости для эскалации привилегий. Такой вектор атаки подчеркивает сложность современных систем защиты.

Основой для уязвимостей стали так называемые проблемы «двойного извлечения» (double-fetch) при обработке IOCTL-запросов (Input/Output Control). Драйвер "aswSnx" некорректно работает с данными, предоставленными пользователем. В частности, при обработке структур "UNICODE_STRING" драйвер дважды считывает поле "Length": сначала для выделения памяти в ядре, а затем для непосредственного копирования данных. Между этими операциями злоумышленник может изменить значение длины в пользовательском режиме, что приводит к переполнению пула (pool overflow) в ядре. Это состояние позволяет контролируемо повреждать память и, в конечном итоге, выполнять произвольный код с высочайшими привилегиями.

Исследователи выбрали Avast для анализа из-за его широкого распространения и обширной поверхности атаки на уровне ядра. Драйверы, доступные из пользовательского режима, такие как "aswSnx", предоставляют множество обработчиков IOCTL с излишне разрешительными списками контроля доступа (ACL). Аудит сфокусировался на компонентах ядра, обрабатывающих непроверенные пользовательские данные. Использование эвристик, например, отслеживание вызовов "ProbeForRead", позволило быстро выявить проблемные участки кода.

Анализ показал, что уязвимый код может быть общим для нескольких продуктов Gen Digital, что потенциально расширяет область воздействия. Помимо основной проблемы с двойным извлечением, в том же обработчике IOCTL "0x82AC0204" были обнаружены дополнительные недостатки. К ним относятся повторяющиеся операции чтения длины строки в цикле и некорректное использование функции "snprintf" при завершении процессов, что ведет к копированию широких строк (wide strings) в буферы фиксированного размера. Еще один вариант уязвимости связан с полем "pData", где также наблюдаются раздельные итерации для определения размера и последующего копирования через "memcpy". Эти ошибки не только позволяют осуществлять контролируемое переполнение, но и могут привести к отказу в обслуживании (DoS) из-за передачи недействительных указателей.

Для эксплуатации уязвимостей необходимо было обойти механизм песочницы Avast. Драйвер "aswSnx" использует конфигурационный файл "snx_lconfig.xml", который ограничивает доступ к опасным IOCTL только для процессов с определенными флагами, такими как "fAutosandbox". Исследователям удалось манипулировать этой конфигурацией через другой IOCTL ("0x82AC0054"), чтобы зарегистрировать исполняемый файл "exploit.exe" с правами на чтение. Это позволило создать процесс в песочнице, который смог вызвать сбои и подтвердить рабочие примитивы для атаки.

Компания Avast оперативно отреагировала на отчет исследователей. В версии 25.3 уязвимости были устранены. Исправления включают в себя копирование пользовательских структур в память ядра перед обработкой, использование первоначально считанного значения длины для всех операций, добавление проверок размера данных относительно фиксированных буферов и валидацию указателей. Согласно системе оценки CVSS v3.1, этим уязвимостям был присвоен критический балл 9.9. Высокая оценка обусловлена низкой сложностью эксплуатации, необходимостью лишь низких исходных привилегий и полным воздействием на конфиденциальность, целостность и доступность данных вследствие изменения области воздействия.

Важно отметить, что исследователи успешно продемонстрировали эксплуатацию уязвимостей для повышения привилегий (LPE) на последней версии Windows 11, доказав их актуальность и опасность. Этот случай в очередной раз демонстрирует сохраняющиеся риски, связанные с драйверами безопасности, работающими в режиме ядра. Даже наличие дополнительных механизмов защиты, таких как песочница, не гарантирует абсолютной безопасности.

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

Ссылки

Комментарии: 0