Если вы пользуетесь виртуальными машинами, то есть повод не испытывать полного умиротворения по поводу процессоров AMD. Учёные-компьютерщики из немецкого Информационно-безопасностного центра Хельмгольца CISPA обнаружили уязвимость в процессорах AMD, которая раскрывает секретные данные в их защищённой среде виртуализации.
Эта брешь, получившая название StackWarp, потенциально позволяет злоумышленнику, имеющему доступ к хост-серверу, получить доступ к конфиденциальным данным внутри гостевых систем AMD SEV-SNP посредством атак, нацеленных на извлечение закрытых криптографических ключей, обход аутентификации по паролю OpenSSH и повышение привилегий.
Компания AMD была уведомлена об уязвимости (CVE-2025-29943), выпустила исправления в июле 2025 года и теперь опубликовала бюллетень безопасности, присвоив проблеме низкую степень критичности.
StackWarp в очередной раз демонстрирует, насколько сложно гарантировать полную изоляцию ресурсов виртуальных вычислений друг от друга на стандартном оборудовании. Атака использует изъян в микроархитектуре, предназначенной для ускорения операций со стеком.
“Эксплуатировать уязвимость можно через ранее не документированный управляющий бит на стороне гипервизора”, — заявил в заявлении для издания The Register исследователь CISPA Жуии Чжан. “Злоумышленник, выполняющий параллельный гиперпоток с целевой ВМ, может использовать это для манипулирования положением указателя стека внутри защищённой ВМ”.
Сценарий атаки применим к AMD SEV-SNP [PDF], преемнику технологий AMD Secure Encrypted Virtualization (SEV) и SEV-ES (Encrypted State), при условии, что включена функция одновременной многопоточности (Simultaneous Multithreading, SMT).
SEV-SNP разработана для изоляции виртуальных машин от гипервизора — программного обеспечения, управляющего ВМ на физическом оборудовании. SMT позволяет ядру процессора одновременно выполнять несколько потоков. Как отмечает AMD, SMT способствует совместному использованию ресурсов ядра между двумя потоками, “что делает её соблазнительной мишенью для эксплойтов, таких как атаки по побочным каналам”.
AMD SEV-SNP, наряду с Intel TDX, используется облачными провайдерами для предоставления конфиденциальных виртуальных машин (CVM), которые, по словам Microsoft, гарантируют “надёжную аппаратную изоляцию между виртуальными машинами, гипервизором и управляющим кодом хоста”.
На процессорах AMD Zen это обещание может быть аннулировано одним переключением бита.
Исследователи CISPA Жуии Чжан, Тристан Хорнец, Даниэль Вебер, Фабиан Томас и Михаэль Шварц сообщают, что им удалось злоупотребить работой стекового движка на процессорах AMD Zen таким образом, что это нарушает целостность CVM.
Свои выводы они описали в документе [PDF] под названием “StackWarp: Нарушение целостности AMD SEV-SNP путём детерминированной манипуляции указателем стека через стековый движок ЦП”. Публикация запланирована на конференции USENIX Security 2026.
Стек — это структура памяти, которую компьютеры используют для управления операциями, связанными с вызовами функций, локальными переменными и адресами возврата. Вершина стека отслеживается регистром ЦП, называемым указателем стека.
Фронтенд ЦП отвечает за выборку и обработку инструкций, что обычно требует запроса к бэкенду ЦП для получения обновлений указателя стека. Как отмечают исследователи, процессоры AMD и Intel реализуют стековый движок во фронтенде ЦП, который отслеживает изменения указателя стека (дельту) для уменьшения необходимости синхронизации между фронтендом и бэкендом.
“В общих чертах, стековый движок отслеживает накопленную дельту указателя стека, чтобы общие операции со стеком выполнялись эффективно”, — объясняют исследователи в своей работе. “Наши измерения показывают, что отключение этого движка во время активных операций со стеком ‘замораживает’ накопленную дельту, в результате чего записи фиксируются, но архитектурное обновление указателя стека задерживается”.
По сути, переключив бит — бит 19 недокументированного регистра модели (MSR) 0xC0011029, относящегося к ядру, — злоумышленник может нарушить синхронизацию между логическими “братскими” ядрами и повредить синхронизированный поток-близнец.
Используя эту технику, исследователи смогли извлечь закрытый ключ RSA-2048, обойти аутентификацию по паролю OpenSSH, обойти аутентификацию по паролю sudo и добиться выполнения кода в кольце 0, модифицировав стек ядра.
“Эти результаты показывают, что сохранение включённой SMT сегодня подрывает цели целостности SEV-SNP: ядро-близнец может изменять управляющий поток и поток данных гостя через общий переключатель фронтенда с точностью до инструкции”, — заключают исследователи.
Поэтому обязательно установите все обновления или исправления, выпущенные AMD.
Код эксплойта с доказательством концепции опубликован на GitHub. ®
Всегда имейте в виду, что редакции могут придерживаться предвзятых взглядов в освещении новостей.
Автор – Thomas Claburn




