Несколько уязвимостей в Linux, позволяющих повысить свои привилегии
23 июля 2015 года
В приложении userhelper и библиотеке libuser, поставляемым по умолчанию в дистрибутивах, основанных на пакетной базе Red Hat, выявлена серия уязвимостей (CVE-2015-3245, CVE-2015-3246), позволяющих выполнить код с привилегиями пользователя root. Для демонстрации проблемы приводится рабочий эксплоит, применяемый к приложениям, использующим libuser для манипуляций с учётными записями пользователей.
Первая уязвимость присутствует в программе userhelper. Программа предназначена для смены информации о пользователе и примечательна тем, что поставляется с установленным флагом setuid-root. Уязвимость вызвана тем, что при разборе передаваемых опций не осуществляется проверка на наличие символа перевода строки ('\\\\n'), что позволяет атакующим передать данные, добавление которых в файл /etc/passwd приведёт к появлению новой строки. Так как указание символа ":" запрещено, имеется возможность добавить только неотформатированные строковые данные, что может быть использовано для осуществления DoS-атаки.
Вторая уязвимость присутствует в библиотеке libuser и вызвана особенностью работы с файлом /etc/passwd. В отличие от классических утилит passwd, chfn и chsh которые вначале создают временный файл с копией /etc/passwd, модифицируют его и заменяют основной файл, в libuser применяется прямая модификация /etc/passwd. Если в ходе манипуляций с /etc/passwd произойдёт ошибка, файл может остаться в некорректном виде. Путём определённых манипуляций, в сочетании с первой уязвимостью, можно добиться очистки записи для пользователя root ("\\\\na::0:0::/:\\\\n") или осуществить подмену поля с shell и домашней директорией, что даёт возможность организовать выполнение кода с правами root.
Дополнительно можно упомянуть выявление уязвимости (CVE-2015-3290) в коде работы с NMI в ядре Linux, позволяющей инициировать крах ядра или выполнить код с правами root. Сообщается, что для уязвимости уже имеется готовый эксплоит, который будет опубликован только через одну-две недели, чтобы дать пользователям время обновить свои системы. Проблема проявляется на системах с архитектурой x86_64 при использовании ядра Linux 3.13 и более новых версий.
Дополнение: эксплойт для CVE-2015-3290 опубликован 4-го августа.
Источники
править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.