Уязвимость в Glibc, позволяющая поднять привилегии в системе

В стaндaртнoй библиoтeкe Glibc выявлeнa уязвимoсть (CVE-2018-1000001), вызвaннaя пeрeпoлнeниeм чeрeз нижнюю грaницу буфeрa в функции realpath(), прoявляющимся рядом вoзврaтe oтнoситeльнoгo пути систeмным вызовом getcwd(). Изначально опора Linux возвращало в getcwd() только абсолютные пути, только затем в ядре 2.6.36 поведение было изменено, только функции Glibc не были адаптированы возьми обработку относительных путей. Относительные пути возвращаются возле достаточно редкой ситуации, когда работа не меняет текущую директорию следом выполнения вызова chroot и путь к корню в самом деле вне области текущего дерева каталогов. Начиная с ядра Linux 2.6.36 начальная деление такого пути заменяется на строку "(unreachable)". Непривилегированный юзер может добиться аналогичного эффекта сменив текущую директорию процесса для путь в другом пространстве имён. Таким (образом как в Glibc не производится поверка на спецстроку "(unreachable)", ведь атакующий может создать каталог "(unreachable)" и использовать в своих интере его как начало относительного пути. Манипулируя ссылками получи и распишись предыдущие каталоги при помощи элементов пути "/..//" не запрещается добиться смещения указателя на недра до начала выделенного буфера и перекатать область памяти перед буфером содержимым части пути. Выявившие слабость исследователи подготовили рабочий прототип эксплоита, позволяющий взвить свои привилегии до прав root черезо манипуляцию с исполняемыми файлами с флагом suid root, в которых вызывается функционирование realpath(). В эксплоите используется обслуживающая программа /sbin/unmount, которая вызывает realpath() в коде инициализации локали, выполняемом после сброса привилегий. Для инициирования появления относительного пути в эксплоите используется гаммада имён идентификаторов пользователя, т.е. атака возможна только лишь при активации поддержки "user namespaces" (sysctl kernel.unprivileged_userns_clone=1). Творение эксплоита продемонстрирована в Debian Stretch держи системе с архитектурой amd64. Обновление пакетов с устранением уязвимости сейчас выпущено для SUSE и openSUSE. Улучшение пока недоступно для Ubuntu, Debian, Fedora и RHEL. Очаг: http://www.opennet.ru/opennews/art.shtml?num=47894