Найдена и пропатчена критическая уязвимость в OpenSSL

В экстренном порядке выпущены корректирующие релизы библиотеки OpenSSL 1.0.1a, 1.0.0i и 0.9.8v в которых устранена критическая уязвимость, которая потенциально может быть применена для совершения атаки на приложения, использующие функции OpenSSL. При успешном совершении атаки может быть инициировано выполнение кода хакера.

Проблема выявлена группой исследователей безопасности из компании Google, информации о наличии в публичном доступе готового к использованию эксплоита пока нет, но теоретически создание такого эксплоита не составит труда, поэтому всем пользователям рекомендуется в кратчайшие сроки осуществить обновление OpenSSL.

Проблема вызвана ошибкой приведения типов в функции asn1_d2i_read_bio() при разборе данных в формате DER, используемого при работе с S/MIME и CMS. Уязвимость позволяет инициировать переполнение буфера и выполнить код злоумышленника при обработке специально оформленных данных. Теоретически эксплуатация уязвимости возможна только на 64-разрядных системах.

Опасность эксплуатации отмечается для приложений, использующих для разбора MIME-блоков функции SMIME_read_PKCS7 и SMIME_read_CMS, а также любые другие функции, связанные с декодированием DER-блоков через функции на базе BIO (d2i_*_bio) и FILE (d2i_*_fp), например, 2i_X509_bio или d2i_PKCS12_fp. В частности, уязвимости подвержена штатная утилита коммандной строки из состава OpenSSL, которая может быть эксплуатирована при обработке данных в формате DER. Приложения, использующие только процедуры PEM или функции ASN1 (d2i_X509, d2i_PKCS12 и т.п.) не подвержены данной уязвимости. Код, связанный с SSL и TLS, проблеме не подвержен, тем не менее следует обратить внимание, не используют ли приложения кроме SSL/TLS проблемных функций, подобных d2i_X509_bio.