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, проверка аутентификации всегда возвращает утвердительное значение.

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

Вышла утилита RKN Block Checker для диагностики блокировок

Разработчик Дмитрий Виноградов представил утилиту RKN Block Checker с открытым исходным кодом. Она помогает понять, почему конкретный сайт не открывается: это обычная сетевая проблема или блокировка на стороне провайдера / регуляторной инфраструктуры.

Проект написан на Python и опубликован под лицензией MIT. Утилита работает из командной строки и проверяет соединение по цепочке DNS → TCP → TLS → HTTP.

Идея простая: не просто выдать вердикт, что сайт недоступен, а показать, на каком именно уровне всё сломалось. Например, если системный DNS не даёт нормальный ответ, а Cloudflare DoH возвращает корректный адрес, это может указывать на DNS-подмену. Если TCP-соединение на 443-й порт сбрасывается, речь может идти о блокировке на уровне IP.

Если TCP проходит, но соединение рвётся на TLS-рукопожатии с SNI, это уже похоже на работу DPI / ТСПУ. А если сайт открывается, но вместо страницы приходит заглушка провайдера или код 451, утилита фиксирует и такой сценарий.

 

Автор отдельно подчёркивает, что смысл RKN Block Checker не в том, чтобы заменить браузер. Браузер и так сообщает, что сайт не открылся. Здесь задача другая — разложить проблему по слоям и дать пользователю более понятную картину, где именно произошёл сбой и на что это похоже.

Утилита сравнивает ответы системного DNS и DNS over HTTPS через Cloudflare, проверяет обычное TCP-подключение, запускает TLS-handshake с SNI целевого домена и затем делает HTTP-запрос. Вердикт выставляется по первому уровню, на котором возникла ошибка.

 

У проекта есть и ограничения. Пока поддерживается только IPv4. Списки целей жёстко заданы в коде и включают около 20 сайтов на категорию, поэтому инструмент не поймает все частные случаи. Кроме того, это разовая проверка без повторов и долгосрочного мониторинга, хотя JSON-вывод можно использовать в cron для регулярных запусков.

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