уязвимость AMD процессор
Уязвимости позволяют получить контроль над прошивкой UEFI и выполнить код на уровне SMM.
В клиенте и встроенных процессорах AMD, выпущенных в 2016-2019 годах, обнаружены три высоко опасные уязвимости, получившие общее название SMM Callout Privilege Escalation. С их помощью злоумышленник с привилегированным или физическим доступом к устройству может выполнить произвольный код или получить контроль над прошивкой. Одна из трех уязвимостей (CVE-2020-14032) была исправлена производителем 8 июня, а патчи для двух других (одной присвоен идентификатор CVE-2020-12890, а другая пока без CVE) появятся позднее в этом месяце.
Как сообщает AMD, уязвимости затрагивают технологию программного обеспечения, поставляемую производителям материнских плат для использования в инфраструктуре Unified Extensible Firmware Interface (UEFI). Проблемы были обнаружены 2 апреля исследователем безопасности Дэнни Одлером (Danny Odler). Эксперт уведомил о них производителя и опубликовал подробности о CVE-2020-14032 13 июня после выхода исправления. Подробности о двух других уязвимостях не раскрываются до выхода патчей.
По словам Одлера, проблемы существуют в гибридных процессорах AMD (Accelerated Processing Unit, APU), предназначенных для работы в качестве центрального и графического процессоров на одном кристалле. Исследователь протестировал уязвимости в UEFI (Unified Extensible Firmware Interface) продукта AMD Mini PC, выпущенного в декабре 2019 года в качестве альтернативы таким малогабаритным компьютерам, как Intel NUC и Gigabyte Brix.
Все три уязвимости затрагивают технологию System Management Mode (SMM) – режим, ответственный за конфигурации процессора и чипсета, код производителя материнской платы и защищенные операции, такие как настройка безопасных загрузочных хэшей, конфигурации TPM (Trusted Platform Module) и управление питанием.
Основной причиной возникновения уязвимости является отсутствие проверки адреса буфера назначения при вызове SmmGetVariable () в обработчике SMI 0xEF. Обработчик SMI 0xEF реализует логику-оболочку для получения данных в переменные UEFI и из них, что обеспечивает способ хранения данных, совместно используемых встроенным ПО платформы и ОС или приложениями UEFI. Функция SmmGetVariable использует значения ArgsStruct для поиска правильной переменной, считывает ее данные и сохраняет их в буфере. Однако эти значения ArgsStruct используются непосредственно «как есть» без какой-либо проверки.
Из-за отсутствия проверки злоумышленник может записывать данные в наиболее защищенную память SMRAM, и, соответственно, выполнять код. Это дает ему возможность манипулировать микрокодом AMD в прошивке UEFI материнской платы (AMD AGESA).
Источник: