Очередное обновление OpenSSL, выпущенное в минувший четверг, закрывает три уязвимости, одна из них оценена как высокой степени опасности. Кроме того, пользователям версии 1.0.1 криптобиблиотеки напомнили, что срок поддержки ее системы безопасности истечет 31 декабря.

Наиболее серьезную брешь в OpenSSL обнаружил Роберт Свенцкий (Robert Święcki), специалист по ИБ из Google. Данной уязвимости, чреватой отказом в обслуживании, подвержена лишь версия 1.1.0, пользователям следует произвести обновление до OpenSSL 1.1.0c.

DoS-брешь проявляется на соединениях TLS, которые используют ChaCha20-Poly1305 — набор шифров, работающий в режиме AEAD и недавно получивший статус стандарта. «TLS-соединения, использующие наборы шифров *-CHACHA20-POLY1305, уязвимы к атаке на отказ в обслуживании через порчу полезной нагрузки большого объема, — сказано в бюллетене OpenSSL. — Это может повлечь крэш OpenSSL, однако возможностей сверх DoS эксплойт в данном случае не предоставляет».

Как уточнил Рич Зальц (Rich Salz) из команды разработчиков OpenSSL, данная уязвимость вызвана просчетом при работе с указателями. «Нулями заполняется не та часть буфера сообщений, — поясняет эксперт. — Единственное, к чему это может привести, — крэш на стороне сервера».

OpenSSL 1.1.0c также закрывает уязвимость умеренной опасности, связанную с обработкой структур закодированных в ASN.1 данных типа CHOICE. «Разбор приложением недопустимых структур CMS может окончиться крэшем с разыменованием NULL-указателя, — отмечено в бюллетене OpenSSL. — Причиной является некорректность обработки ASN.1-типа CHOICE в OpenSSL 1.1.0, в результате которой при попытке высвободить неправильно закодированные данные в используемый структурой обратный вызов передается значение NULL. Уязвимость затрагивает лишь те CHOICE-структуры, которые используют функцию обратного вызова, не обрабатывающую значение NULL».

Третьей уязвимости, пропатченной в OpenSSL, присвоена низкая степень опасности. Она связана с переносом данных и присутствовала в процедуре умножения по Монтгомери, характерной для процессоров с архитектурой Broadwell (Intel Core i5); в этой реализации алгоритма входные данные обрабатываются порциями кратными, но большими, чем 256 бит. Проведенный в OpenSSL анализ показал, что атаки на закрытые ключи RSA, DSA и DH в данном случае невозможны, «так как соответствующая подпрограмма не используется в операциях с закрытым ключом и входными данными по выбору атакующего; в противном случае этот баг мог бы проявляться как ошибка промежуточной аутентификации и согласования ключа или воспроизводимый ошибочный результат операций с открытым ключом при злонамеренном вводе данных».

Из алгоритмов, использующих эллиптические кривые, данная уязвимость затрагивает лишь Brainpool P-512, атаки на ECDH тоже не исключены. «Последствия подробно не анализировались, так как предпосылки для атаки оценены как маловероятные, — пишут участники OpenSSL. — В частности, многочисленным клиентам приходится выбирать соответствующую кривую, а сервер должен разделять между ними закрытый ключ; ни то, ни другое поведение не задается по умолчанию. Даже если бы это было так, атака затронула бы лишь клиенты, осуществляющие выбор кривой».

Данная уязвимость актуальна для OpenSSL 1.1.0 и пропатчена в 1.1.0c. Версия 1.0.2 ей не подвержена, и, поскольку опасность невелика, нового релиза не будет.

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