Проблему обнаружили сотрудники стартапа Perception Point. Уязвимость связана с работой подсистемы keyring, которая отвечает за шифрование и хранение аутентификационных токенов, ключей шифрования, сертификатов и других конфиденциальных данных. Так как приложениям позволено при необходимости заменять один keyring другим, может возникнуть ошибка – произойдет обращение к уже освободившейся области памяти. Все это порождает утечку reference leak, эксплуатируя которую, можно выполнить в ядре произвольный код.
Исследователи представили proof-of-concept эксплоита, который заменяет keyring-объект в памяти исполняемым кодом.
«На момент обнаружения данная уязвимость представляла угрозу для 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.
автор: МАРИЯ НЕФЁДОВА