Критическая уязвимость в GnuTLS

5/03/2014 12:52

В 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 и других важных пакетов, таких как VPN-приложения и 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.
Источник