В OpenSSL закрыли критическую уязвимость 16-летней давности

Опубликованы корректирующие выпуски OpenSSL 1.0.1h, 1.0.0m и 0.9.8za, в которых устранена опасная уязвимость (CVE-2014-0224), позволяющая совершить MITM-атаку, которая может привести к расшифровке и модификации на транзитном шлюзе проходящего в рамках защищённого SSL/TLS-соединения трафика.

Информация об уязвимости была направлена команде разработчиков OpenSSL исследователем безопасности Kikuchi Masashi, выявившем наличие проблемы. До выхода исправления сведения об уязвимости не разглашались публично. По мнению Kikuchi Masashi уязвимость присутствует в коде с самых первых выпусков OpenSSL и оставалась незамеченной из-за недостаточно полного рецензирования и аудита кода проекта экспертами, досконально разбирающимися в реализации TLS/SSL.

Атака может быть успешно проведена только при использовании уязвимой версии OpenSSL одновременно на стороне сервера и клиента, между которыми организован канал связи. Уязвимость в клиентской части присутствует во всех версиях OpenSSL, в то время как на сервере уязвимость проявляется только при использовании веток OpenSSL 1.0.1 и 1.0.2-beta1. Проблема вызвана тем, что OpenSSL принимает сообщения ChangeCipherSpec (CCS) вне ненадлежащей стадии установки соединения. Метод проведения атаки достаточно сложен и требует подстановки ChangeCipherSpec-сообщения в момент установки соединения. Популярные браузеры (IE, Firefox, Chrome, Safari) не подвержены проблеме, так как в них не используется OpenSSL.

Помимо MITM-уязвимости, в новых выпусках устранена уязвимость в коде обработки фрагментов DTLS (CVE-2014-0195), которая потенциально может быть использована для организации выполнения кода на стороне сервера или клиента через отправку специально оформленных DTLS-фрагментов. Проблеме подвержены только приложения, использующие OpenSSL в качестве DTLS клиента или сервера.