Уязвимость sudo позволяет изменить любой файл и получить root в системе

Уязвимость sudo позволяет изменить любой файл и получить root в системе

Уязвимость sudo позволяет изменить любой файл и получить root в системе

Специалисты французской ИБ-компании Synacktiv обнаружили в sudo возможность обхода политик sudoers при использовании опции –e (команды sudoedit), безопасно запускающей редактор. Уязвимость грозит несанкционированным изменением важных файлов и позволяет локально повысить привилегии до суперпользователя.

Сисадмины используют sudo для делегирования полномочий на запуск команд, в том числе с правами root. При выполнении sudoedit запускается программа-редактор, указанная в переменной окружения, но перед этим фронтенд sudo производит проверку разрешений на редактирование целевых объектов — по содержимому файла sudoers.

При положительном результате проверки модуль sudoers передает на фронтенд вектор-аргумент с заданным редактором, к которому через разделитель «--» добавлен список файлов, выбранных пользователем. Таким образом, все, что идет после символа «--», система воспримет как файлы, подлежащие редактированию, создаст временные копии и запустит процесс с правами инициатора.

Проблема CVE-2023-22809, выявленная экспертами Synacktiv (PDF) в механизме sudoedit, вызвана некорректной обработкой аргументов, передаваемых в переменных окружения. В итоге злоумышленник с привилегиями sudoedit может получить доступ к любым файлам в системе, добавив лишний аргумент «--» в SUDO_EDITOR, VISUAL или EDITOR.

Уязвимости подвержены все прежние версии sudo, начиная с 1.8.0. Патч включен в состав сборки 1.9.12p2. В качестве временной меры защиты можно запретить обработку SUDO_EDITOR, VISUAL и EDITOR, добавив в sudoers следующую строку:

 

Можно также ввести ограничения для редактора с помощью Cmnd_Alias:

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

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