На прошлой неделе в OpenSSL-реализации протокола OCSP (проверки статуса сертификатов) была закрыта брешь, чреватая отказом в обслуживании на уязвимых серверах. Это самый настоятельный патч из 14 новых от разработчиков OpenSSL.

OCSP во многих случаях используется как альтернатива списку отозванных сертификатов. Используя этот протокол, клиент может подать на сервер пинг-запрос на статус цифрового сертификата.

Уязвимость CVE-2016-6304 допускает эксплойт посредством отправки с клиента OCSP-запроса, содержащего расширение. «Если этот клиент будет упорно просить повторное согласование, из раза в раз посылая OCSP-запрос с расширением, на сервере будет расти объем несвязанной памяти, — поясняет команда OpenSSL в бюллетене. — В итоге это приведет к отказу в обслуживании через истощение памяти».

Данную брешь обнаружили исследователи из китайской ИБ-компании Qihoo 360. «При дефолтных настройках сервер выделяет неограниченное пространство памяти для идентификаторов OCSP при каждом повторном согласовании, даже в том случае, если его конфигурация не предполагает использование OCSP, — поясняют эксперты. — Согласно спецификациям OCSP, его ID требует до 65 535 байт памяти. Поток запросов на повтор согласования вызовет рост неограниченной памяти на сервере, теоретически до 64 Кбайт за раз».

Уязвимости CVE-2016-6304 подвержены дефолтные сборки OpenSSL 1.1.0 и более поздние, версиям ниже 1.0.1g она не свойственна. Пользователям OpenSSL 1.1.0 рекомендуется обновиться до 1.1.0a, 1.0.2 — до 1.0.2i, 1.0.1 — до 1.0.1u. «На 1.0.2 рост потребляемой памяти возможен примерно на 16 К для каждого повтора, так как максимальный размер для ClientHello установлен на 16 384 байта, — пишут исследователи. — В версии 1.1.0 этот предел был увеличен до 131 396 байт, рост памяти здесь может составить около 64 К на каждый повтор».

Соответствующие патчи выпущены также для Linux- и BSD-дистрибутивов Debian, Ubuntu, RedHat/CentOS и FreeBSD.

Из остальных уязвимостей, пропатченных в OpenSSL, 12 оценены как низкой степени опасности, одна — как умеренная. Последняя может повлечь отказ в обслуживании, выражающийся в зависании SSL или TLS в ходе вызова функции SSL_peek(), если злоумышленник отослал пустую запись. Этот баг актуален для OpenSSL 1.1.0 и исправлен в релизе 1.1.0a.

Устранена также уязвимость CVE-2016-2183, грозящая коллизией, нареченной SWEET32. Концепт этой атаки на 64-битные шифры был раскрыт месяц назад. Как и ожидалось, в OpenSSL 1.0.1 и 1.0.2 статус блочного шифра 3DES был понижен с высокого до среднего, в OpenSSL 1.1.0 он отныне отключен по умолчанию.

Категории: Главное, Уязвимости