В платформе NVIDIA Jetson TX1 закрыта уязвимость, позволяющая выполнить вредоносный код, повысить привилегии в системе или вызвать отказ в обслуживании. Багу присвоили идентификатор CVE‑2019‑5680. Он затрагивает миллионы мобильных и IoT-устройств, работающих на процессорах Tegra. Патч включен в пакет драйверов Tegra Linux L4T 32.2, который вышел 18 июля.

В бюллетене NVIDIA сказано, что уязвимость вызвана ошибкой в реализации загрузчика операционной системы. Обнаруживший недочет независимый эксперт из Венгрии Триска Балаж (Triszka Balázs) смоделировал на его основе атаку под названием Selfblow, пояснив, что баг затрагивает «все ранее выпущенные устройства на базе Tegra».

Системы на чипе (SoC) Tegra входят в комплект разработчика Jetson TX1 и используются в устройствах, требующих пониженного энергопотребления, например, в дронах или IoT-девайсах. Насколько велик охват проблемы, пока неясно. Встраиваемые системы, созданные на основе Jetson TX1, работают на процессорах той же модели — TX1. Однако исследователь отметил, что в разработанном им эксплойте есть возможность перепрограммирования любых чипов Tegra, а это значительно расширяет возможности злоумышленников.

«Для PoC я воспользовался блобами из релиза Shield TV r30. В данном примере видно, что запуск flash_exploit.sh привел к перепрошивке до Jetson TX1. После загрузки TX1 в окне uart0 появляется сообщение Secure boot is broken!\n, и система уходит в бесконечный цикл», — рассказывает Балаж.

Исследователь разработал атаку, основываясь на методе «холодной» перезагрузки (Cold Boot Attack). Он основан на способности оперативной памяти хранить данные от нескольких секунд до нескольких минут после того, как компьютер выключен. Выключив, а потом снова включив компьютер, взломщик может запустить на нем собственную операционную систему и получить доступ к ключам шифрования и другой конфиденциальной информации.

«Это непривязанный эксплойт холодной загрузки, и, насколько я могу судить, он угрожает всем устройствам на базе Tegra (за исключением Nintendo Switch, поскольку у того есть собственный загрузчик операционной системы). Безопасная загрузка терпит полное поражение даже на последних прошивках», — пишет Балаж в комментарии на GitHub. Между тем режим безопасной загрузки является стандартной мерой защиты операционной системы от выполнения неподписанного кода.

По словам эксперта, баг восходит к команде nvtboot, которая необходима для загрузки микропрограммного обеспечения на уровне процессора. Воспользоваться уязвимостью можно, например, если злоумышленник получит непосредственный доступ к компьютеру и запишет данные на встроенную в чип карту памяти eMMC. При отсутствии физического доступа к устройству атаку можно провести удаленно, доставив жертве эксплойт через зараженный сайт или мобильное приложение для Android.

По этой причине автор опасной находки полагает, что компания NVIDIA слегка преуменьшила риски, оценив уязвимость в 7,7 балла по шкале CVSS. «Правильно было бы 8,1 баллов, поскольку взаимодействия с пользователем не требуется», — написал он у себя в твиттере. Компания-разработчик никак не прокомментировала это заявление.

Балаж обнаружил ошибку еще в марте. По его словам, NVIDIA обещала ее исправить к маю. «Прошло уже четыре месяца, и я решил рассказать об этом общественности в надежде, что это побудит их исправить баг, и мы получим более качественные и безопасные устройства», — отметил исследователь на GitHub. Через неделю после публикации компания выпустила патч.

Категории: Главное, Уязвимости