Компания Claroty предупредила, что продуктам, построенным на базе OpenVPN, угрожают пять серьезных уязвимостей, связанных с выполнением произвольного кода, добиться которого можно в том случае, если жертва посетит вредоносную страницу. В частности, баги затронули решения таких компаний, как HMS Industrial Networks, MB connect line, PerFact и Siemens.
Исследователи обнаружили, что производители обычно разворачивают OpenVPN как службу с привилегиями SYSTEM, что создает риски для безопасности, ведь любые удаленные или локальные приложения могут управлять OpenVPN для инициирования или завершения защищенных соединений.
Как правило, архитектура VPN клиент-сервер включает в себя внешний интерфейс (приложение с GUI для пользователя), серверную часть (которая принимает команды от внешнего интерфейса) и OpenVPN (службу, управляемую серверной частью и отвечающую за VPN-соединения).
Поскольку в большинстве случаев в выделенном канале сокета, через который интерфейс управляет серверной частью, используется cleartext-протокол без какой-либо аутентификации, «любой, у кого есть доступ к локальному TCP-порту, который прослушивает серверная часть, потенциально может загрузить конфигурацию OpenVPN и заставить серверную часть создать новый экземпляр OpenVPN с этой конфигурацией», — говорят эксперты.
По сути, злоумышленнику нужно лишь обманом вынудить жертву посетить вредоносный сайт с JavaScript, предназначенным для локальной отправки слепого POST-запроса POST (для передачи команд серверной части VPN-клиента). Компания сообщает, что это классический пример SSRF-уязвимости.
«Как только жертва кликает по ссылке, HTTP POST-запрос запустится локально на выделенном TCP-порту. Поскольку HTTP — это cleartext-протокол, каждая строка которого заканчивается на \n, бэкэнд-сервер будет читать и игнорировать все строки до тех пор, пока не доберется до нужной команды», — гласит отчет команды.
Так как бэкэнд-сервер автоматически анализирует и выполняет любые допустимые команды, которые он получает, ему можно дать указание загрузить файл удаленной конфигурации, содержащий определенные команды, ведущие к выполнению кода или установке пейлоада.
К счастью, для удаленного выполнения кода хакеру понадобится доступ к подконтрольному ему SMB-серверу, то есть злоумышленник должен находиться в одной доменной сети с целевой системой, либо на компьютере жертвы должен быть разрешен SMB-доступ к внешним серверам.
В общей сложности после исследования Claroty идентификаторы были присвоены пяти уязвимостям: CVE-2020-14498 (9,6 балла по шкале CVSS, eCatcher HMS Industrial Networks AB), CVE-2021-27406 (8,8 балла по шкале CVSS, OpenVPN-клиент PerFact), CVE-2021-31338 (7,8 балла по шкале CVSS, клиент Siemens SINEMA RC), а также CVE-2021-33526 и CVE-2021-33527 (7,8 балла по шкале CVSS, MB connect line GmbH mbConnect Dialup).