OpenVPN 2.7.5: Останнє оновлення для популярного VPN

OpenVPN 2.7.5: Останнє оновлення для популярного VPN

Сьогодні було випущено OpenVPN 2.7.5, яке стало останнім оновленням для широко використовуваного open-source VPN-рішення. Це оновлення виправляє сім вразливостей, зафіксованих у CVE, включаючи помилки use-after-free, витоки пам’яті, проблеми з обробкою буферів та збої, які впливають на сервери або клієнти за конкретними конфігураціями.

Виправлення помилок у Windows

Серед найважливіших виправлень – проблема, специфічна для Windows, в openvpnserv, де певні комбінації параметрів конфігурації DNS і локальних налаштувань DNS можуть призвести до забруднення стану DNS SearchList під час операцій підключення та відключення. OpenVPN 2.7.5 також виправляє дві окремі вразливості use-after-free.

Вразливості в ack_write_buf та tls_wrap_reneg

Перша вразливість впливає на ack_write_buf() і може бути спровокована ретельно синхронізованою послідовністю контрольних і аутентифікаційних пакетів. Друга вразливість стосується tls_wrap_reneg() і містить відповідну послідовність динамічних пакетів контрольного каналу tls-crypt.

Виправлення помилок на стороні сервера

Ще одне важливе виправлення на серверній стороні усуває збій, який може виникнути, якщо отримано неправильно сформований auth-token під час увімкнення --auth-gen-token зовнішньої аутентифікації. Оновлення також усуває дві проблеми з витоками пам’яті tls-crypt-v2, які можуть призвести до ситуацій недостатності пам’яті та збоїв сервера.

Виправлення інших помилок

Окрім виправлень CVE, OpenVPN 2.7.5 включає кілька інших виправлень помилок. На Windows це виправлення перевірки довіреної директорії плагіна, хоча проект відзначає, що це не класифікується як вразливість безпеки, оскільки експлуатація вимагала б прав адміністратора або соціальної інженерії.

Оновлення також переглядає частини обробки перетворення DNS-доменів в openvpnserv і виправляє проблему use-after-free, пов’язану з опціями DNS під час підключення клієнта. У конфігураціях сервера, що використовують параметри DNS --dns або --dhcp-option локально, це може спровокувати два розподіли пам’яті та викликати збій сервера.

Поліпшення обробки подій Multi-Socket UDP

Інші виправлення поліпшують обробку подій multi-socket UDP, усувають витік пам’яті в парсингу адрес сервера DNS, коли налаштовано занадто багато адрес сервера, та коректують поведінку port-share за наявності кількох сокетів. Випуск також виправляє проблему, коли вхідні пакети tls-crypt-v2 RESET на різних сокетах могли спричинити надсилання відповідей на неправильний IP-адрес клієнта або через неналежний сокет.

Запобігання зниженню значення tun-mtu

На завершення, OpenVPN 2.7.5 гарантує, що значення tun-mtu не може бути нижчим за TUN_MTU_MIN, запобігаючи серверу від надсилання опцій, які можуть викликати проблеми у клієнті. На Windows код обробки сокета тепер перевіряє довжину буфера перед читанням вставленого sockaddr, що допомагає уникнути можливого переповнення при неналежній роботі драйвера Windows DCO.

Додаткові деталі можна знайти в changelog.