7 октября 2026 года разработчики OpenVPN выпустили версию 2.7.8 с исправлениями проверки сертификатов, обработки DNS-настроек и работы VPN-соединений. Одна из уязвимостей позволяла авторизованному участнику выдавать себя за другого пользователя, а другая затрагивала клиентов Windows и Android. В установочный пакет для Windows также включили драйвер, устраняющий риск полного зависания компьютера.

Ошибка в сертификатах OpenVPN позволяла подменить личность пользователя
Уязвимость CVE-2026-84790 связана с тем, как OpenVPN проверял имя владельца цифрового сертификата. Сертификаты используются при подключении к VPN, чтобы сервер мог определить, с кем устанавливает защищённое соединение. В поле с данными владельца можно было поместить специальный нулевой байт — NUL, который в программных строках часто обозначает их окончание.
Из-за некорректной обработки такого поля удалённый пользователь, уже прошедший аутентификацию, мог выдать себя за другого участника VPN. В официальном бюллетене затронутыми названы версии OpenVPN от 2.3.0 до 2.7.7, исправление вошло в 2.7.8. Условия атаки ограничены: для описанного сценария требовался пользователь, уже прошедший аутентификацию в VPN.
С обновлением проверка стала строже: сертификаты, в идентификационных полях которых встречается NUL, отклоняются как недействительные. Разработчики отдельно предупреждают о возможной несовместимости со старыми сертификатами в сборках, использующих OpenSSL. Сборки на mbedTLS отвергали такие значения и раньше.
Заодно команда устранила различие между двумя криптографическими библиотеками при чтении сертификатов с повторяющимися полями, например несколькими CN (Common Name, общее имя владельца). Прежде OpenSSL использовал последнее значение, а mbedTLS — первое. В OpenVPN 2.7.8 поведение mbedTLS приведено к варианту OpenSSL. Для инфраструктуры, где имя из сертификата участвует в определении прав пользователя, одинаковые правила проверки особенно существенны.
Через DNS-настройки сервер мог вызвать сбой клиента Windows или Android
Вторая проблема, CVE-2026-88964, находилась в обработке списка доменов поиска DNS. Такой список помогает системе дополнять короткие имена устройств доменными суффиксами: например, обращаться к внутренним ресурсам корпоративной сети без полного адреса.
В OpenVPN сервер может передавать клиенту сетевые параметры. Специально сформированное обновление этих параметров (PUSH_UPDATE) при обработке списка доменов вызывало целочисленный выход за нижнюю границу допустимого значения (unsigned underflow) и выход за границы допустимой области памяти. По описанию разработчиков, удалённый сервер, прошедший аутентификацию мог вызвать отказ в обслуживании или раскрытие данных из памяти клиента.
Официальный бюллетень ограничивает область воздействия Windows и Android, а диапазон затронутых версий — от 2.7_alpha3 до 2.7.7. В версии 2.7.8 ошибку исправили. Угроза связана с обработкой параметров от сервера, поэтому наличие VPN-клиента само по себе ещё не описывает все условия эксплуатации.
Изменили и реакцию клиента на некорректное TLS-рукопожатие с tls-crypt-v2: когда отсутствует необходимый ключевой материал, программа больше не пытается добавить обёрнутый клиентский ключ. Для этой ошибки отдельный номер CVE не присвоили. Ещё один случай связан с неподходящим сочетанием режима epoch data и шифра без AEAD: клиент теперь перезапускает сеанс вместо завершения с фатальной ошибкой.
Драйвер OpenVPN для Windows больше не должен блокировать всю систему
В поставке OpenVPN 2.7.8-I001 для Windows обновился драйвер ovpn-dco-win до версии 2.8.13. Он отвечает за ускоренную обработку VPN-трафика на уровне ядра системы — механизм Data Channel Offload (DCO).
Исправление CVE-2026-105390 затрагивает именно драйвер. В прежних версиях ошибка синхронизации позволяла локальному злоумышленнику с доступом к устройству ovpn-dco вызвать взаимную блокировку операций. В результате зависала вся Windows, вплоть до необходимости выключить и снова включить компьютер. Бюллетень перечисляет затронутые ветки драйвера 0.6.5–1.3.3 и 2.4.0–2.8.7; исправленные версии — 1.3.4 и 2.8.13.
Разработчики обновили в MSI-пакете также OpenSSL до 3.6.5 и Easy-RSA до 3.2.7. Для драйвера DCO заявлена переработка обработки данных с использованием нескольких ядер процессора. Конкретного прироста скорости для пользовательских конфигураций в объявлении релиза нет, поэтому говорить об универсальном ускорении VPN в процентах пока нельзя.
При этом CVE-2026-84256, вновь упомянутая в списке исправлений, уже фигурировала в OpenVPN 2.7.7. Она касается обработки специальных символов командной строки Windows в cmd.exe. Нынешний релиз продолжает исправления в этой области; представлять CVE-2026-84256 как впервые закрытую только в 2.7.8 было бы неточно.
Повторное подключение к VPN больше не должно сбивать маршруты DCO
Проблема маршрутизации особенно заметна на сервере, когда один клиент отключается и быстро подключается снова. В DCO существовала гонка операций: внутренние маршруты iroute удалялись с задержкой, при окончательной очистке старого клиентского сеанса. К этому моменту новый сеанс уже мог успеть настроить собственные маршруты, после чего устаревшая очистка оставляла систему без нужных записей.
В OpenVPN 2.7.8 маршруты удаляются сразу при выходе клиента, до отложенной очистки. Ошибку команде проекта передали разработчики OpenVPN Access Server. Для сетей с часто переподключающимися устройствами это конкретное изменение поведения: новый VPN-сеанс меньше зависит от того, в каком порядке завершились операции предыдущего.
Исправлен и ещё один сценарий DCO в Linux и Windows. Если установка ключа шифрования или создание участника соединения на уровне ядра завершается ошибкой, OpenVPN теперь обрабатывает сбой в соответствующем сеансе. Прежде такая ситуация могла завершить весь серверный процесс. В Linux отдельно разделили синхронный обмен с ядром и асинхронные уведомления с помощью второго сокета Netlink, устранив ещё один источник гонок.
Ветка OpenVPN 2.6 получила отдельный установщик Windows 7 октября
События 7 октября затронули и пользователей предыдущей стабильной ветки. OpenVPN 2.6.23 как версия исходного кода вышла ещё 23 сентября 2026 года, поэтому считать её октябрьским релизом нельзя. Но 7 октября команда выпустила для Windows установщик 2.6.23-I002, включив в него исправленный драйвер ovpn-dco-win 1.3.4 с защитой от той же CVE-2026-105390.
Таким образом, Windows-пакеты двух веток получили исправление драйвера в один день. Новые проверки сертификатов и DNS-настроек, описанные для OpenVPN 2.7.8, при этом нельзя автоматически приписывать ветке 2.6.23: у неё собственный набор изменений и история поддержки.
Что изменилось в OpenVPN после октябрьского обновления
Версия 2.7.8 ужесточила правила идентификации участников VPN, исправила обработку параметров от сервера и изменила поведение при ошибках DCO. Для Windows отдельную роль играет новый драйвер, устраняющий зависание всей системы при определённых локальных действиях.
Возможная несовместимость с сертификатами, содержащими NUL, — известное следствие новых проверок. Масштабы фактической эксплуатации перечисленных уязвимостей в официальном объявлении релиза не приводятся. Результат обновления в конкретной сети зависит от используемой криптографической библиотеки, операционной системы, версии драйвера и конфигурации VPN.
Источники
- Официальный анонс OpenVPN 2.7.8 от 7 октября 2026 года
- OpenVPN Community — релизы и установочные пакеты
- OpenVPN — CVE-2026-84790, подмена личности через поле сертификата
- OpenVPN — CVE-2026-88964, ошибка обработки DNS-параметров
- OpenVPN — CVE-2026-105390, блокировка Windows драйвером DCO
- OpenVPN — CVE-2026-84256, исправление командной строки Windows