Уязвимость в Linux позволяет sudo-пользователям получить привилегии root

Уязвимость в Linux позволяет sudo-пользователям получить привилегии root

Уязвимость в Linux позволяет sudo-пользователям получить привилегии root

Уязвимость, существующая из-за того, как Sudo обрабатывают tty-информацию, приводит к тому, что пользователь может получит привилегии root и перезаписать любой файл в системах с поддержкой SELinux.

Брешь получила идентификатор CVE-2017-1000367 и была обнаружена Qualys Security в Sudo get_process_ttyname() для Linux. Проблема заключается в том, как Sudo парсит информацию tty из файла состояния процесса в файловой системе proc.

Уязвимость может быть использована локальным пользователем с привилегиями для выполнения команд через Sudo и привести к тому, что пользователь повысит свои привилегии до root. Брешь получила высокую степень риска.

В своем сообщении Qualys Security объясняет, что функция get_process_ttyname() открывает «/proc/[pid]/stat» (man proc) и считывает номер устройства tty из поля 7 (tty_nr). Хотя эти поля разделены пробелами, поле 2 (comm, имя файла команды) может содержать пробелы.

Таким образом, пользователи в системах с поддержкой SELinux могут повысить свои привилегии и перезаписать любой файл в файловой системе, в том числе корневые файлы, с выводом команды.

Чтобы успешно использовать эту проблему, пользователю пришлось бы выбрать номер несуществующего устройства в разделе «/dev». Поскольку Sudo выполняет поиск в первой части /dev, и если терминал не найден в каталоге /dev/pts, пользователь может выделить псевдотерминал и создать символическую ссылку на вновь созданное устройство, об этом говорится в сообщении.

Затем злоумышленник использует этот файл в качестве стандартного ввода, вывода. Если символическая ссылка заменена другим файлом перед тем, как Sudo откроет его, это позволит перезаписывать произвольные файлы.

Подпишитесь на новости

VPN через VK, MAX и DNS: Rawline собрал разные туннели в одном клиенте

Когда один способ подключения перестаёт работать, начинается перебор приложений: здесь VLESS, там DNS-туннель, отдельно — транспорт через звонки. Разработчик Rawline решил собрать этот набор в одном клиенте для Android, Windows, Linux и macOS. За основу взяты Throne и сетевые ядра sing-box и Xray.

Как устроен проект и какие проблемы безопасности пришлось решать, автор рассказал на Хабре.

Помимо привычных VPN-протоколов, Rawline поддерживает нестандартные транспорты через звонки VK и MAX, WebRTC, DNS и S3. Все подключения представлены обычными профилями, их можно импортировать по ссылке или QR-коду, проверять пинг, объединять в цепочки и настраивать маршрутизацию по приложениям и доменам. Работоспособность конкретного способа при ограничениях придётся проверять на своей сети.


Отдельный акцент — защита от приложений, исключённых из VPN. По словам автора, через незащищённый локальный прокси или прямое обращение к интерфейсу туннеля они могут отправить запрос через VPN и узнать адрес сервера.


В Rawline разработчик убрал лишние прокси-входы, защитил внутренние соединения случайными паролями и добавил проверку принадлежности трафика приложениям. Последняя защита включена по умолчанию на Android 10 и новее.

При проверке также обнаружилась проблема в нескольких транспортных мостах: постороннее приложение могло первым отправить UDP-пакет и перехватить канал. Автор сообщает, что исправил её и добавил тесты. Код и сборки опубликованы на GitHub.

RSS: Новости на портале Anti-Malware.ru