Новая уязвимость в некоторых процессорах AMD позволяла обойти защиту Secure Encrypted Virtualization (SEV), и при определенных условиях злоумышленник получал возможность загрузить вредоносный микрокод.
Уязвимость была обнаружена специалистами компании Google осенью 2024 года и получила идентификатор CVE-2024-56161. Проблема оценивается в 7,2 балла из 10,0 по шкале CVSS.
«Некорректная проверка подписи в загрузчике патчей микрокодов AMD CPU ROM позволяла злоумышленнику с привилегиями локального администратора загрузить вредоносный микрокод, что приводило к потере конфиденциальности и целостности гостевых систем, работающих с AMD SEV-SNP», — сообщают в AMD.
Технология Secure Encrypted Virtualization (SEV) была представлена вместе с релизом процессоров Epyc. Это функция шифрует память каждой виртуальной машины (ВМ) таким образом, чтобы только сам гость имел доступ к данным. SEV использует уникальный ключ для каждой виртуальной машины, чтобы изолировать ВМ и гипервизор друг от друга. В итоге информация оказывается защищена шифрованием от других ВМ, контейнеров и недоверенного гипервизора.
SNP (Secure Nested Paging) обеспечивает защиту целостности памяти для создания изолированной среды выполнения и защиты от атак на основе гипервизора.
В собственном бюллетене безопасности специалисты Google рассказывают, что уязвимость CVE-2024-56161 возникает из-за небезопасной хеш-функции при проверке подписи для обновлений микрокода. В итоге злоумышленник может скомпрометировать конфиденциальные вычисления, защищенные AMD SEV-SNP, а также поставить под угрозу целостность Dynamic Root of Trust Measurement, что угрожает безопасности виртуализированных сред.
По словам исследователей, проблема затрагивает все процессоры AMD на базе архитектуры Zen 1–4 (то есть практически все Ryzen и Epyc). А в бюллетене безопасности AMD перечислены Epyc 7001 (Naples), Epyc 7002 (Rome), Epyc 7003 (Milan и Milan-X) и Epyc 9004 (Genoa, Genoa-X и Bergamo/Siena).
Эксперты Google выпустили proof-of-concept полезной нагрузки для демонстрации уязвимости на процессорах AMD Epyc 7B13 (Milan) и Ryzen 9 7940HS (Phoenix), которая заставляет инструкцию RDRAND всегда возвращать значение «4» вместо случайного числа. Для ее использования понадобятся root-права вне виртуальной машины.
Дополнительные технические подробности свежего бага пока не разглашаются, чтобы выпущенные AMD исправления успели распространиться по цепочке поставок.