Обновление OpenSSL с устранением уязвимости в реализации TLS

Доступны корректирующие выпуски криптографической библиотеки OpenSSL 1.0.2r и 1.1.1b. В выпуске 1.0.2r устранена уязвимость (CVE-2019-1559), которая связана с некорректной обработкой нулевых байтов в добавочном заполнении (padding oracle).

При возникновении ошибки и двойном вызове функции SSL_shutdown() в приложении уязвимость позволяет разделять ситуации в случае получения некорректного добавочного заполнения и некорректного MAC. Манипулируя информацией о корректности блоков добавочного заполнения атакующий может путём перебора определить содержимое шифротекста. Уязвимость отнесена к категории проблем среднего уровня опасности так как для атаки требуется применение нетипичных наборов шифров ("non-stitched") и необходимо, чтобы приложение вызывало функцию SSL_shutdown() дважды (один раз для отправки уведомления close_notify, а второй для приёма).

Выявившие уязвимость исследователи также проанализировали реализации TLS на миллионе самых популярных сайтов по рейтингу Alexa и пришли к выводу, что 1.83% из них подвержены тем или иным уязвимостям, связанным с определением корректности блоков добавочного заполнения CBC. Всего в ходе проверки было определено около 100 различных уязвимостей, позволяющих судить о корректности добавочного заполнения на основании разницы в ответах, характера выдаваемых ошибок и флагов в заголовках TCP.

Уязвимость не затрагивает ветку 1.1.1. В выпуске 1.1.1b исправлена ошибка в реализации "DTLS over SCTP", которая приводила к нарушению совместимости с прошлыми версиями OpenSSL, в том числе с ветками 1.1.0 и 1.0.2. Кроме того, в новой версии изменены callback-сигналы с информацией о начале и конце финального обмена сообщениями в процессе согласования соединения в TLSv1.3.

Источник: OpenNET