Новая уязвимость в Linux позволяет получить root-права практически на любом Android-устройстве

root

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

Эта техника взлома стала возможно благодаря раскрытому на прошлой неделе багу в Linux, позволяющему повышать права до суперпользователя, который уже активно используется для атак на сервера и обычные Linux-машины. Баг, известный также как Dirty COW (CVE-2016-5195), появился в ядре Linux ещё в 2007 году и его крайне легко использовать, что делает его одним из самых серьёзных в истории открытого ПО.

Проблема связана с тем, как подсистема памяти ядра работает с механизмом copy-on-write (COW, отсюда и название). Эксплуатация уязвимости приводит к состоянию гонки, что в конечном счёте позволяет атакующему повысить свои привелегии в системе.

Как использовать уязвимость?

Независимый исследователь Дэвид Манучекри (David Manouchehri) представил код, который показывает, как можно эксплуатировать уязвимость. В нём намеренно не хватает всего нескольких строк, чтобы не любой школьник смог применить его на практике. Код был проверен на пяти разных устройствах, и он каждый раз срабатывал. Дэвид также добавил, что в теории применить этот эксплойт можно для любой версии Android, так как Android 1.0 была основана на ядре 2.6.25, а баг присутствует начиная с 2.6.22.

Также процесс можно посмотреть на видео, где показан пример взлома телефона HTC.

Есть и другие версии эксплойта от независимой группы исследователей.

Как защититься?

Уязвимость в Linux уже была исправлена, нужно просто обновить ядро. А вот когда этот фикс дойдёт до Android-устройств — неизвестно. Да и дойдёт ли вообще: многие устройства ограничены в обновлениях до новых версий из-за устаревших устройств или ограничений производителя.