Компания AMD раскрыла подробности о четырёх уязвимостях, затрагивающих практически все современные линейки процессоров, от серверных EPYC до настольных Ryzen и встраиваемых решений. Проблемы сосредоточены в низкоуровневых компонентах прошивки AGESA и SMM, поэтому их эксплуатация открывает злоумышленнику путь к выполнению произвольного кода, повышению привилегий или нарушению работоспособности системы. AMD уже выпустила исправления в виде обновлённых версий микрокода, однако установка этих обновлений требует участия производителей материнских плат и самих пользователей.
Детали уязвимостей
Все четыре уязвимости обнаружили исследователи из компании IOActive. Три из них связаны с SMM - специальным режимом работы процессора, предназначенным для выполнения функций управления питанием и аппаратным обеспечением. Четвёртая относится к AGESA, то есть к коду, который инициализирует процессор при включении питания. Поскольку именно AGESA хранится в микросхеме SPI-флэша на материнской плате, проблемы с проверкой подлинности данных в этом компоненте позволяют модифицировать содержимое прошивки.
Первая уязвимость, описанная как CVE-2023-20576, связана с недостаточной проверкой подлинности данных в AGESA. Атакующий может использовать её для обновления данных в SPI ROM, что потенциально приводит к отказу в обслуживании или повышению привилегий. Вторая проблема, CVE-2023-20577, представляет собой переполнение кучи в SMM-модуле. Для её эксплуатации злоумышленнику необходим доступ к записи во флэш-память SPI, однако в сочетании с другими уязвимостями это открывает возможность выполнения произвольного кода. Третья, CVE-2023-20579, связана с неправильным контролем доступа в функции защиты SPI. Пользователь с привилегиями Ring0, то есть с правами режима ядра, может обойти встроенную защиту и нарушить целостность или доступность системы. Наконец, CVE-2023-20587 также относится к ошибке контроля доступа в SMM и позволяет получить доступ к SPI flash, что в итоге может привести к выполнению кода.
Стоит подчеркнуть, что для серверных EPYC и встраиваемых процессоров статус CVE-2023-20587 изначально был указан неверно. AMD позднее исправила его на "не затронуты", уточнив, что данная проблема актуальна только для клиентских систем и рабочих станций. Остальные три уязвимости распределены по разным семействам неравномерно. Например, CVE-2023-20576 не влияет на серверные EPYC, но затрагивает часть настольных Ryzen и мобильных процессоров, а CVE-2023-20577 и CVE-2023-20579 встречаются в различных комбинациях в зависимости от платформы.
Перечень затронутых продуктов охватывает процессоры от второго поколения EPYC Rome до четвёртого поколения Genoa, а также серверные графические ускорители Instinct MI300A. Среди настольных решений в списке значатся Ryzen серий 3000, 4000, 5000 и 7000, включая модели со встроенной графикой Radeon. Уязвимы и мобильные процессоры Ryzen от 3000 до 7045 серии, а также встраиваемые линейки EPYC Embedded и Ryzen Embedded. Отдельно упомянута рабочая станция Radeon PRO V620 - для неё производитель рекомендует обращаться к инженерам AMD напрямую.
AMD сообщает, что некоторые результаты исследований IOActive могли быть получены на системах с устаревшими версиями прошивки и программного обеспечения. Тем не менее компания признала уязвимости и подготовила обновления для каждой затронутой платформы. Для серверов EPYC выпущены версии AGESA RomePI 1.0.0.H, MilanPI 1.0.0.C и GenoaPI 1.0.0.8. Для настольных процессоров обновления распространяются через пакеты ComboAM4, ComboAM4v2 и ComboAM5, а для мобильных и встраиваемых линеек - через соответствующие версии PicassoPI, CezannePI, RembrandtPI и другие.
Практическая сложность заключается в том, что исправления не доходят до конечного пользователя напрямую. Производители материнских плат и ноутбуков должны выпустить обновлённый BIOS или UEFI на основе новых версий AGESA, после чего пользователям необходимо самостоятельно установить это обновление. Для серверного и встраиваемого оборудования процесс обновления ещё сложнее, поскольку часто требует планового обслуживания и проверки совместимости с программным стеком. Однако тянуть с установкой не стоит: вредоносный код, внедрённый в SMM, способен переживать перезагрузки, оставаться незаметным для операционной системы и антивирусных средств, а также давать атакующему устойчивый контроль над устройством.
AMD рекомендует всем владельцам затронутых систем следить за выходом обновлений прошивки и устанавливать их сразу после публикации. Дополнительно компания советует придерживаться общих практик безопасности: поддерживать операционную систему и прикладное ПО в актуальном состоянии, ограничивать локальный доступ к устройствам и не предоставлять права администратора посторонним. Поскольку часть уязвимостей требует наличия привилегий Ring0, снижение риска компрометации на уровне ОС помогает предотвратить дальнейшее развитие атаки.
На данный момент AMD не сообщает о случаях эксплуатации этих уязвимостей в реальных атаках. Тем не менее раскрытие столь широкого спектра проблем в прошивке процессоров подчёркивает важность обновлений низкоуровневого кода, которым зачастую уделяют меньше внимания, чем операционным системам. Атаки на SMM и SPI flash в последние годы привлекают всё больше исследователей, и подобные находки демонстрируют, что даже современные платформы сохраняют уязвимости на уровне, который обычно остаётся вне поля зрения администраторов и пользователей.
Ссылки
- https://www.amd.com/en/resources/product-security/bulletin/amd-sb-7009.html
- https://www.amd.com/en/resources/product-security.html