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

11/07/2015 12:08

Доступны корректирующие релизы OpenSSL 1.0.2d и 1.0.1p, в которых устранена критическая уязвимость (CVE-2015-1793), позволяющая обойти процедуру проверки сертификата и организовать подтверждённое соединение с использованием подставного сертификата. Причиной уязвимости являются внесённые в выпусках 1.0.1n и 1.0.2b изменения, в результате которых OpenSSL пытается найти альтернативную цепочку верификации сертификата, если первая попытка построения цепочки подтверждения доверия не увенчалась успехом. Из-за ошибки в реализации данной особенности, атакующий получил возможность пройти некоторые проверки указав не заслуживающий доверия сертификат. В частности, можно пройти проверку на флаг принадлежности удостоверяющему центру, что даёт атакующему возможность задействовать второстепенный заверенный сертификат в качестве сертификата удостоверяющего центра и "выписать" при его помощи подставной сертификат, который успешно пройдёт проверку в OpenSSL. Т.е. атакующий получает возможность выступить в качестве удостоверяющего центра, генерирующего сертификаты для любых доменов. Проблема затрагивает любые приложения, инициирующие проверку сертификата, в том числе клиенты SSL/TLS/DTLS и серверы SSL/TLS/DTLS, использующие клиентскую аутентификацию. Опасность уязвимости частично смягчает то, что она проявляется только в версиях OpenSSL 1.0.2c, 1.0.2b, 1.0.1n и 1.0.1o, выпущенных в июне. Более ранние выпуски, а также ветки 1.0.0 и 0.9.8 уязвимость не затрагивает. Проблема выявлена Адамом Лэнгли (Adam Langley) из Google и Дэйвидом Бенджамином (David Benjamin) из проекта BoringSSL.
Источник