Firecracker VM Escape: как исследователи обошли микроВМ
Исследователи безопасности продемонстрировали побег из микроВМ Firecracker, получив выполнение кода с правами root на хосте.

Исследователи продемонстрировали успешный побег из изолированной среды микроВМ Firecracker с получением выполнения произвольного кода с правами root на хосте. Эта работа продолжает серию публикаций PwnEscape и демонстрирует уязвимость на примере настройки Firecracker.
- Исследователи использовали ранее обнаруженный примитив доступа к памяти хоста из гостевой системы.
- Было найдено расположение процесса Firecracker в памяти для перехвата активного потока изнутри гостевой ОС.
- Атака затрагивает структуру pt_regs, где ядро хоста хранит сохраненные пользовательские регистры потока во время системного вызова.
Архитектура угрозы в Firecracker
МикроВМ Firecracker управляется отдельным процессом на хосте. Каждый виртуальный CPU запускает отдельный поток, который входит в KVM для выполнения гостевого кода и возвращается в Firecracker при необходимости обработки событий в пространстве пользователя. Когда поток находится в таком системном вызове, хостовое ядро удерживает его сохраненные регистры в структуре pt_regs.
Указатель инструкций и указатель стека определяют состояние потока. Исследователи поняли, что модификация этого сохраненного фрейма при возврате из KVM_RUN позволяет перенаправить выполнение программы на заранее выбранный код. Для этого использовался механизм поиска физической памяти через табличные трансляции EPT.
Читайте такжеSonicWall устранила критическую уязвимость SSL-VPN в SonicOSРазведка памяти и обход EPT
Гость и хост используют разные физические адресные пространства. С помощью размещения уникального байтового паттерна (nonce) в гостевой странице исследователи смогли связать гостевой физический адрес с аппаратным адресом на хосте через поиск корневых структур Extended Page Tables.
Обратный маппер позволил найти процесс хоста, проецирующий данную страницу, восстановив корневой каталог таблиц страниц процесса (PGD) и определив смещение загрузки исполняемого файла Firecracker с учетом рандомизации адресов ASLR. Это дало возможность безошибочно идентифицировать адресное пространство целевого демона.
Перехват потока и выполнение кода
Финальная часть эксплойта заключалась в поиске кадра pt_regs конкретного потока vCPU. Используя возвращаемый адрес из KVM_RUN и проверки валидности стека, исследователи локализовали точный физический адрес сохраненного регистрового фрейма.
Модификация обнаруженного кадра позволила изменить поведение потока в момент возврата из системного вызова в пользовательское пространство Firecracker. Это привело к выполнению полезной нагрузки атакующего на уровне хоста при сохранении стабильной работы виртуальной машины.
Что это значит для разработчиков и бизнеса
Подобные сложные атаки подчеркивают критическую важность изоляции контейнеров и микроВМ, особенно в многопользовательских облачных средах. Хотя инженеры Amazon Web Services постоянно совершенствуют безопасность Firecracker, демонстрация подобных цепочек уязвимостей указывает на скрытые риски при работе с низкоуровневыми компонентами виртуализации и управлением памятью.
Источник: Hacker News: Front Page



