Уязвимость в LightDM, позволяющая повысить свои привилегии в системе

В менеджере входа LightDM, применяемом по умолчанию в Ubuntu, выявлена уязвимость (CVE-2017-7358), позволяющая локальному пользователю поднять свои привилегии в системе. Проблема проявляется только в выпусках Ubuntu 16.10 и 16.04 LTS, и на днях устранена в обновлении USN-3255-1.

Проблема вызвана ошибкой в коде создания временной домашней директории в скрипте /usr/sbin/guest-account, который запускается с правами root при каждом создании и завершении гостевого сеанса. В частности, временная домашняя директория создаётся в общедоступном каталоге /tmp при помощи вызова «mktemp», что позволяет локальному атакующему отследить появление нового каталога через систему inotify и оперативно подменить его на свой каталог (race condition) до выполнения следующей операции с каталогом в скрипте. В итоге домашняя директория гостевого пользователя будет создана в директории, подконтрольной атакующему, что позволяет заменить домашнюю директорию на символическую ссылку (например, спозиционировать её на /usr/local/sbin).

Далее каталог будет примонтирован в tmpfs с изменением прав доступа («mount -t tmpfs -o mode=700,uid=${GUEST_USER} none ${GUEST_HOME}») для директории, на которую указывает символическая ссылка. Затем, так как права доступа на каталог /usr/local/sbin изменены, можно разместить в нём свой вариант используемого в скрипте исполняемого файла «getent». Так как каталог окажется в области поиска исполняемых файлов, подменённый «getent» будет вызван в ходе выполнения скриптом операции обработки завершения гостевого сеанса, которая выполняется с правами root.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.