Доступен выпуск strongSwan 5.9.10, свободного пакета для создания VPN-соединений на базе протокола IPSec, используемого в Linux, Android, FreeBSD и macOS. В новой версии устранена опасная уязвимость (CVE-2023-26463), которая может быть использована для обхода аутентификации, но потенциально также может привести к выполнению кода атакующего на стороне сервера или клиента. Проблема проявляется при проверке специально оформленных сертификатов в методах аутентификации EAP (Extensible Authentication Protocol) на базе TLS.
Уязвимость вызвана тем, что TLS-обработчик некорректно принимает любые открытые ключи из сертификата соседнего узла (peer), считая их заслуживающими доверия, даже если сертификат не может быть успешно верифицирован. В частности, при вызове функции tls_find_public_key(), для определения заслуживающих доверия сертификатов, используется выборка на основе типа открытого ключа. Проблема в том, что переменная, используемая для определения типа ключа для поиска, выставляется в любом случае, даже если сертификат не заслуживает доверия.
Более того, через манипуляцию с ключом можно добиться уменьшения счётчика ссылок (если сертификат не заслуживает доверия, ссылка на объект освобождается после определения типа ключа) и освобождения памяти под ещё используемый объект с ключом. Рассмотренная недоработка не исключает создание эксплоитов для организации утечки информации из памяти и выполнения своего кода.
Атака на сервер осуществляется через отправку клиентом самоподписанного сертификата для аутентификации клиента с использованием методов EAP-TLS, EAP-TTLS, EAP-PEAP и EAP-TNC. Атака на клиента может быть совершена через возвращение сервером специально оформленного сертификата. Узвимость проявляется в выпусках strongSwan 5.9.8 и 5.9.9. Публикацию обновлений пакетов в дистрибутивах можно проследить на страницах: Debian, Ubuntu, Gentoo, RHEL, SUSE, Arch, FreeBSD, NetBSD.