Повышение привилегий и побег из виртуалок из-за уязвимости в SYSRET на всех процессорах x86-64 от Intel leo // 18.06.12 20:01
Во всех процессорах архитектуры x86-64 от Intel есть уязвимость, позволяющая повышение привилегий до уровня ядра ОС или супервизора, включая выход за пределы виртуальной машины.
[Не забывайте при копировании материала указывать полный адрес источника: //bugtraq.ru/rsn/archive/2012/06/06.html]
Уязвимость является следствием ошибки в реализации инструкции SYSRET, точнее, в некорректной проверке неканонического адреса перед сменой привилегий в 64-х битном режиме. Это позволяет выполнить произвольный код из Ring 3 (непривилегированный пользователь) в Ring 0 (ядро или супервизор).
В US-CERT обнаружили уязвимость еще в мае, уведомили вендоров и 12 июня опубликовали новость.
Например, на некоем хостинге мне выделили виртуальную машину.
Я на ней ставлю некую ось, и загружаю свой драйвер, который выполнит такой хитрый SYSRET, который запустит некий мой процесс на супервизоре, так я понимаю?
Да, но можно обойтись и без установки драйвера.19.06.12 16:04 Автор: leo <Леонид Юрьев> Статус: Elderman
Копай в сторону IDT, #GP. Кратко, первопричина в том, что sysret использует информацию из IDT. В случае косяков AMD вызывает исключение в госте, а вариация Intel в хосте. Погугли по "sysret intel vulnerability example". Ну, и запустится не процесс, а код.19.06.12 11:16 Автор: kstati <Евгений Борисов> Статус: Elderman
Почитал, разобрался... самое смешное, что интел говорит примерно следующее: "а мы чо — мы ничо, всё работает согласно нашим спецификациям" :-) всё верно — задокументированный баг уже не баг -)))20.06.12 11:36 Автор: HandleX <Александр М.> Статус: The Elderman