Linux-версия Mozilla VPN некорректно проверяет аутентификацию

Linux-версия Mozilla VPN некорректно проверяет аутентификацию

Linux-версия Mozilla VPN некорректно проверяет аутентификацию

Один из разработчиков Linux-дистрибутива SUSE указал на опасную уязвимость в клиенте Mozilla VPN для «пингвина». Эксплуатация бреши может позволить перенаправить сетевой трафик на сторонние ресурсы и вмешаться в текущие настройки VPN.

В посте на Openwall специалист Матиас Герстнер объясняет, что проблема кроется в некорректной проверке аутентификации. Баг затрагивает версию v2.14.1, которая вышла 30 мая.

Фактически уязвимость может использовать любой пользователь, что позволит ему перенаправить трафик «на сторону», вмешаться в конфигурацию VPN и многое другое. Особую опасность брешь представляет для компьютеров, которыми пользуются несколько людей.

По словам Герстнера, проблему удалось обнаружить в тот момент, когда один из сотрудников пытался добавить клиент Mozilla VPN в систему openSUSE Tumbleweed. Софт изучила команда безопасности SUSE (что является стандартной процедурой) и обратила внимание на службу D-Bus, запущенную от имени root и с политикой Polkit.

Polkit представляет собой API для аутентификации привилегированных программ. Как выяснила команда безопасников SUSE, процесс mozillavpn linuxdaemon содержал некорректную логику аутентификации.

После этого Герстнер обнаружил, что проверка аутентификации реализована по странной логике: код «просит» Polkit определить, авторизована ли служба Mozilla VPN D-Bus (а не конкретный пользователь) осуществлять определенное действие. Поскольку D-Bus работает с правами root, проверка аутентификации всегда возвращает утвердительное значение.

Таким образом, проверку пройдет любой пользователь и любой аккаунт, невзирая на права.

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

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