В коде ядра Linux обнаружена опасная уязвимость CVE-2016-0728. Баг существует с 2012 года, и актуален для 32 и 64-битных систем и версий ядра начиная с 3.8 и заканчивая новейшей 4.4. Уязвимость позволяет локальному пользователю повысить свои права в системе до максимума, то есть получить root-доступ к устройству. Проблема также касается Android-девайсов, работающих под управлением Android KitKat и выше, а это порядка 66% всех устройств на базе Android в мире.

Проблему обнаружили сотрудники стартапа Perception Point. Уязвимость связана с работой подсистемы keyring, которая отвечает за шифрование и хранение аутентификационных токенов, ключей шифрования, сертификатов и других конфиденциальных данных. Так как приложениям позволено при необходимости заменять один keyring другим, может возникнуть ошибка – произойдет обращение к уже освободившейся области памяти. Все это порождает утечку reference leak, эксплуатируя которую, можно выполнить в ядре произвольный код.

Исследователи представили proof-of-concept эксплоита, который заменяет keyring-объект в памяти исполняемым кодом.

linux-root-exploit

«На момент обнаружения данная уязвимость представляла угрозу для 10 млн ПК и серверов на базе Linux, а также для 66% Android-устройств (смартфонов и планшетов), — пишут специалисты Perception Point. — Хотя ни нам, ни команде безопасности ядра не известно о существовании эксплоитов, направленных на использование данной проблемы, мы рекомендуем тщательно проверить все потенциально уязвимые устройства и как можно скорее установить патчи».

Так как исследователи из Perception Point заранее уведомили о проблеме разработчиков популярных дистрибутивов, работа над патчами идет полным ходом. Исправления обещают представить в ближайшие дни.

Сложнее придется экосистеме Android, которая, как известно, подвержена огромной фрагментации. Хотя уязвимы почти 2/3 устройств, вряд ли многие из них получат патчи. Утешает одно – исследователям понадобилось более получаса, чтобы использовать эксплоит на ПК, базирующемся на Intel Core i7-5500, против ядра версии 3.18. Тогда как обычно время не является решающим фактором при проведении подобных атак (root-доступ стоит долгого ожидания), на ARM процессоре смартфона эксплуатация уязвимости должна занять целую вечность. К тому же использовать проблему на Android сложнее из-за защитных механизмов Supervisor Mode Execution Protection и Supervisor Mode Access Prevention (SMAP), а также модуля безопасности SELinux.

Фото: Shutterstock



4 комментария

  1. userpak

    20.01.2016 at 11:33

    Как жить теперь?

  2. swappa

    20.01.2016 at 12:09

  3. AgentJordan

    20.01.2016 at 22:42

    Заняло ~25 мин на i5-3210M @ 2.50GHz
    $ uname -rmo
    4.3.3-2-ARCH x86_64 GNU/Linux
    $ ./cve_2016_0728 PP_KEY
    uid=1000, euid=1000
    Increfing…
    finished increfing
    forking…
    finished forking
    caling revoke…
    uid=1000, euid=1000
    sh-4.3$

  4. Trigger

    21.01.2016 at 16:34

    и заканчивая 4.5? шта? щяс 4.4 максимум что есть

Оставить мнение