Критическая уязвимость в GnuTLS, существенно влияющая на безопасность дистрибутивов Linux
В GnuTLS 3.2.12, свободной библиотеке с реализацией протоколов SSL, TLS и DTLS и функций для работы с различными типами сертификатов, устранена критическая уязвимость (CVE-2014–0092). Проблема проявляется во всех выпусках GnuTLS и даёт возможность обойти процедуры верификации сертификатов X.509, в результате чего специально оформленный поддельный сертификат может быть воспринят как валидный. Проблема выявлена сотрудниками Red Hat в результате аудита кода GnuTLS. Злоумышленник, имеющий контроль над транзитным оборудованием (например, имеющий доступ к маршрутизатору или кабелю), может организовать MITM-атаку (man-in-the-middle) и использовать незаверенный в удостоверяющем центре поддельный сертификат для получения контроля над транзитным TLS-соединением клиента. Также не исключается использование уязвимости в GnuTLS для распространения фиктивных обновлений пакетов c обходом системы проверки по цифровой подписи.
Всем пользователям, использующим приложения, вызывающие функции GnuTLS для организации аутентификации по сертификатам, следует срочно обновить GnuTLS. По предварительной оценки более 350 пакетов в Debian завязаны на GnuTLS, в том числе проблеме подвержены библиотеки libmailutils и cURL (libcurl3-gnutls), которые используются в почтовых приложениях и системах обновления пакетов (apt-transport-https). Предпочение GnuTLS вместо OpenSSL по лицензионным соображениям в Ubuntu и Debian также приводит к привязке к GnuTLS и других важных пакетов, таких как SSL-модулей Nginx и Apache.
Проблема возникла из-за ошибочного выполнения команды очистки ('goto cleanup') без последующего перехода в секцию вывода ошибки верификации ('goto fail'), что позволяет атакующему сформировать универсальный поддельный сертификат, который всегда будет проходить процедуру верификации. На момент написания новости, пакеты с устранением уязвимости уже анонсированы для Debian, RHEL, Fedora, CentOS, openSUSE, SLE, Ubuntu, FreeBSD.
Уязвимость оценивается как очень серьёзная и подрывающая доверие к проекту. Ховард Чу (Howard Chu), главный архитектор проекта OpenLDAP, ещё в 2008 году выступал с рекомендацией прекращения использования GnuTLS в связи с несоблюдением элементарных правил безопасности в кодовой базе GnuTLS, в частности, повсеместном использованим функций strlen и strcat. По мнению Ховарда, исправить ситуацию может только полный пересмотр API GnuTLS.
© OpenNet