Новая уязвимость в VirtualBox, позволяющая выполнить код на стороне хост-системы

Tipper

Member
Joined
Feb 11, 2018
Messages
625
Reaction score
244
Сергей Зеленюк раскрыл детальную информацию об ещё не исправленной (0-day) критической уязвимости в системе виртуализации VirtualBox, позволяющей обойти механизм изоляции гостевых систем и выполнить код на стороне хост-окружения. Для демонстрации уязвимости подготовлен рабочий прототип эксплоита. Для атаки требуется наличие прав root или администратора в гостевой системе. Проблема проявляется в конфигурации по умолчанию с сетевым адаптером E1000 при применении трансляции адресов (NAT) для организации сетевого взаимодействия.

Проблема вызвана переполнением буфера в коде эмуляции сетевого адаптера E1000 (Intel PRO/1000 MT Desktop). Практическая атака, использующая данное переполнение буфера, разделена на несколько этапов: через манипуляцию с Tx-дескрипторами пакета (структура с информацией о пакете), создаются условия для целочисленного переполнения через нижнюю границу (integer underflow), что позволяет организовать загрузку произвольных данных в буфер и вызвать его переполнение с наложением не уместившегося в буфер хвоста на область указателей или инициировать переполнение стека.

Суть уязвимости в том, что возможно создание условий, при которых Tx-дескрипторы данных могут поступить для обработки раньше Tx-дескрипторов контекста. Дескрипторы данных включают сведения о физическом адресе пакета в памяти и размере пакета. Дескрипторы контекста содержат информацию о максимальном размере пакета и сегментации. Размер пакета в дескрипторе с данными всегда меньше максимального размера пакета в дескрипторе контекста. В случае нарушения порядка обработки Tx-дескрипторов при вычислении размера возникает целочисленное переполнение через нижнюю границу.

Атака позволяет выполнить код на уровне третьего кольца защиты (ring3) в хост-окружении, после чего можно воспользоваться техникой повышения привилегий до уровня ring0 через манипуляции с /dev/vboxdrv. Подготовленный прототип эксплоита демонстрирует 100% повторяемость и не зависит от сборки VirtualBox. Эксплоит оформлен в виде модуля ядра, загружаемого на стороне гостевой системы. Уязвимость проявляется независимо от операционных систем, используемых на стороне хоста и гостевого окружения. В качестве обходного пути для защиты рекомендуется сменить в настройках эмулируемый сетевой адаптер на PCnet или Paravirtualized Network, или отключить режим NAT.

Решение опубликовать сведения об уязвимости, не дожидаясь исправления, вызваны неприятием сложившейся практики в области связанных с безопасностью исследований и негативным опытом информирования о уязвимостях в прошлом. Исследователям приходится ждать по полгода, пока будет исправлена уязвимость, а также возникает неопределённость при участии в программах выплаты вознаграждений за выявление уязвимостей. При участии в программах выплаты вознаграждений приходится более месяца ждать пока уязвимость будет проверена и будет принято решение о выплате. Решение при этом принимается наобум - сегодня за уязвимость могут заплатить, а через неделю она уже может показаться неинтересной. Размер выплаты мало предсказуем. Неприятие также вызывает последнее время раздуваемая маркетинговая шумиха вокруг уязвимостей - исследователи дают уязвимостям имена, создают сайты и логотипы, преувеличивают важность собственной работы и преподносят себя как спасителей мира.

 

lea314

New member
Joined
Feb 16, 2012
Messages
1
Reaction score
0
"Just had a look at the issue and it seems like a pretty serious vulnerability. Anyone got an update on whether a patch is being worked on for this?"
 

Mazuko

New member
Joined
Mar 7, 2008
Messages
2
Reaction score
0
"Hey guys, haven't seen any official statement from VirtualBox about this vulnerability yet. Should keep an eye on the official VirtualBox blog and update to the latest version once the patch is released. Anyone have a link to a detailed description of the exploit?"
 
Top