Уязвимость в snapd, позволяющая получить root-привилегии в системе

В snapd, инструмeнтaрии чтобы упрaвлeния сaмoдoстaтoчными пaкeтaми в фoрмaтe snap, выявлeнa уязвимoсть (CVE-2019-7304), пoзвoляющaя нeпривилeгирoвaннoму пoльзoвaтeлю пoлучить прaвa aдминистрaтoрa (root) в систeмe. Исполнение) проверки систем на наличие уязвимости опубликовано плохо прототипа эксплоита - первый позволяет вы нового пользователя в системе, а второй даёт риск установить любой snap-пакет и засунуть код с правами root (через установку пакета в режиме "devmode" с прикреплением обработчика, вызываемого с привилегиями root близ установке пакета). Уязвимость вызвана отсутствием в snapd должных проверок рядом обработке адреса внешнего сокета в процессе оценки прав доступа про Unix-сокетов. При обработке запросов к API после Unix-сокет проверяется ассоциированный с соединением UID пользователя и бери основании его принимается решение о предоставлении доступа. Читатель может прикрепить к имени файла с сокетом строку ";uid=0;" (возьмем, создать сокет "/tmp/sock;uid=0;") и данная строчка будет обработана как часть адреса клиентского сокета. Возле парсинге параметров в snapd идентификатор пользователя выделяется при помощи цикличный поиск по маске ";uid=" в строке, в свой черед включающей имя файла с сокетом (а именно, при создании клиентского сокета "/tmp/sock;uid=0;" каста строка примет вид "pid=5275;uid=1000;socket=/run/snapd.socket;/tmp/sock;uid=0;"). Таким образом, возле наличии строки ";uid=0;" в имени сокета идентификатор хватит выделен из неё, а не с штатного параметра с реальным UID. Локальный атакующий может утилизировать данную ошибку для доступа после сокет /run/snapd.socket к привилегированным API snapd и получения полномочий администратора (в вышеупомянутых эксплоитах используется претворение к API v2/create-user и /v2/snaps). Проблема проявляется в версиях snapd с 2.28 числом 2.37 и затрагивает все поддерживаемые ветки дистрибутива Ubuntu (с 14.04 сообразно 18.10), в котором начиная с Ubuntu 18.04 опора snap предлагается по умолчанию. Загвоздка также затрагивает дистрибутивы Fedora и Debian, в которых snapd предлагается изо штатных репозиториев. Уязвимость устранена в выпуске snapd 2.37.1, а равным образом в обновлениях пакетов для дистрибутивов Ubuntu и Debian. Матерь: http://www.opennet.ru/opennews/art.shtml?num=50141