Исследователи PwnEscape опубликовали вторую часть работы о выходе за пределы виртуальной машины Firecracker. В первой части они получили доступ к отдельным областям физической памяти хоста из гостевой системы. Новый этап показывает, как с помощью этого доступа обнаружить процесс Firecracker и перенаправить выполнение одного из его активных потоков. Демонстрация относится к цепочке CVE-2026-99999.
Firecracker запускает каждую microVM через процесс на хосте, а для каждого виртуального CPU создаёт отдельный поток. Он передаёт управление гостю через KVM и возвращается в пользовательское пространство, когда требуется обработать событие. Исследователи использовали сохранённое состояние такого потока, чтобы при возврате из KVM заставить процесс выполнить выбранный вызов.
Для этого гостевая система сначала связала известную ей страницу памяти с соответствующей физической страницей хоста, затем нашла адресное пространство процесса Firecracker и исполняемый образ. Это позволило обойти неопределённость размещения кода при ASLR. Дополнительные проверки помогли выбрать именно активный поток vCPU, а не похожие устаревшие данные в памяти.
Доказательством стал вывод короткой контрольной строки непосредственно процессом Firecracker. После этого исследователи восстановили временно изменённые данные, вернули поток к исходному пути и проверили состояние системы. Firecracker продолжил работать, SSH-доступ к гостю сохранился, исполняемый код и общие библиотеки не изменились, а ошибок ядра не наблюдалось.
Эксперимент проводили с Firecracker v1.16.1 на x86-64, ядром хоста 7.0.0-1011-aws и гостевым ядром 6.18.44+. Процесс запускали напрямую с правами root, поэтому выбранный вызов получил те же привилегии. Важное ограничение: jailer не использовался. Штатная production-конфигурация Firecracker снижает привилегии и ограничивает процесс через namespaces и seccomp, поэтому последствия компрометации VMM в таком развёртывании требуют отдельной оценки. Статья также сопровождается исходниками, журналами и хешами артефактов для независимой проверки.