В OpenVPN обнаружен ряд уязвимостей, включая одну критическую

Эксперт выявил проблемы, незамеченные в рамках масштабных аудитов безопасности, проведенных в 2017 году.

Исследователь безопасности из Нидерландов Гуидо Вранкен (Guido Vranken) сообщил о четырех уязвимостях в открытом решении OpenVPN, оставшихся незамеченными при проведении двух масштабных аудитов безопасности в нынешнем году, в рамках которых специалисты изучали ПО на предмет уязвимостей, бэкдоров и различных дефектов.

Три из четырех проблем затрагивают серверную сторону, последняя эксплуатируется на стороне клиента и позволяет атакующему похитить пароль для доступа к прокси.

Наиболее серьезная проблема (CVE-2017-7521) связана с функцией extract_x509_extension(), отвечающей за обработку SSL-сертификатов. Проэксплуатировав уязвимость, удаленный авторизованный атакующий может выполнить произвольный код на сервере либо вызвать отказ в работе OpenVPN сервиса путем отправки специально сформированного сертификата. Вранкен не продемонстрировал PoC-код для эксплуатации проблемы, но подчеркнул, что теоретически это возможно.

Вторая уязвимость (CVE-2017-7520) связана с тем, как OpenVPN подключается к прокси-серверам, использующим протокол NTLMv2. Злоумышленник может осуществить атаку «человек посередине» и удаленно вызвать отказ в работе клиента либо похитить пароль к прокси, вызвав утечку памяти.

Последние две уязвимости (CVE-2017-7508 и CVE-2017-7522) позволяют вызвать отказ в работе OpenVPN сервера с помощью отправки специально сформированных пакетов IPv6 или вредоносных данных.

Команда OpenVPN устранила вышеуказанные уязвимости с выпуском обновлений OpenVPN 2.4.3 и 2.3.17.

OpenVPN — свободная реализация технологии Виртуальной Частной Сети (VPN) с открытым исходным кодом для создания зашифрованных каналов типа точка-точка или сервер-клиенты между компьютерами. Она позволяет устанавливать соединения между компьютерами, находящимися за NAT-firewall, без необходимости изменения их настроек.

NTLM — протокол, проверяющий подлинность пользователей и компьютеров, основываясь на механизме запроса/подтверждения, доказывающем серверу или контроллеру домена, что пользователю известен пароль, связанный с учетной записью.