Уязвимость в OpenSSL и LibreSSL, приводящая к утечке содержимого памяти

Новости мира unix. Хотите узнать секрет вечного счастья? Откройте страницу 246.
Ответить
acolyte
Аватара пользователя
Сообщения: 3263
Зарегистрирован: 20.08.2022

#

Уязвимость в OpenSSL и LibreSSL, приводящая к утечке содержимого памяти
Дата публикации:Wed, 08 Feb 2023 13:50:35 +0300




Опубликована корректирующие выпуски библиотек OpenSSL (3.0.8, 1.1.1t) и LibreSSL (3.5.4, 3.6.2) в которых устранена опасная уязвимость (CVE-2023-0286), позволяющая добиться получения содержимого произвольных областей памяти процесса при обработке подконтрольного атакующему списка отозванных сертификатов (CRL) или токена с временной меткой.



Уязвимость вызвана неправильной интерпретацией типов (Type Confusion) при обработке адреса X.400 в расширении X.509 GeneralName. В частности, адрес X.400 разбирался с использованием типа ASN1_STRING, в то время как для поля x400Address в структуре GENERAL_NAME был использован тип ASN1_TYPE, что приводило к использованию при сравнении (GENERAL_NAME_cmp) типа ASN1_TYPE вместо ASN1_STRING. При включённой проверке в списке отозванных сертификатов (выставлении в приложении флага X509_V_FLAG_CRL_CHECK) уязвимость позволяет атакующему добиться передачи произвольных указателей в функцию memcmp, что может быть использовано для чтения содержимого памяти или инициирования аварийного завершения процесса.



В большинстве ситуация для успешного осуществления атаки злоумышленник должен контролировать используемый список отозванных сертификатов (CRL) и цепочку доверия сертификата. Атака также может быть проведена в случае контроля над одним из указанных элементов, но в этом случае в качестве точки распространения CRL должен фигурировать адрес X.400, что встречается достаточно редко. В связи с этим предполагается, что уязвимость в основном затрагивает приложения, в которых применяется собственная реализация функциональности загрузки CRL по сети.




Помимо рассмотренной проблемы в OpenSSL 3.0.8 также устранено несколько менее опасных уязвимостей:
  • CVE-2022-4304 - атака по сторонним каналам, позволяющая определить исходные данные через измерение сетевых задержек при выполнении операций RSA, использующих режимы добавочного заполнения PKCS#1 v1.5, RSA-OEAP и RSASVE. Атака представляет собой вариацию метода Блейхенбахера, суть которого в том, что атакующий на основании разной реакции сервер может отделить корректные и некорректные блоки добавочного заполнения (padding oracle), используемые для выравнивания зашифрованных данных по границе блока. Для успешного проведения атаки требуется отправка очень большого объёма пробных сообщений для расшифровки.



    С практической стороны атака, например, может быть применена для определения мастер-секрета TLS-соединения, который передаётся клиентом на сервер в зашифрованном виде. Атакующий, который имеет возможность перехватить соединение между клиентом и сервером, может восстановить значение мастер-секрета через отправку серверу большого числа пробных сообщений и анализ времени их обработки. После определения мастер-секрета атакующий может дешифровать данные, отправляемые через рассматриваемое TLS-соединение.



    CVE-2022-4203 - чтение из области вне границ буфера при верификации сертификатов X.509 со специально оформленным полем Name. Атака может привести к аварийному завершению приложения или утечке содержимого памяти процесса, выполняемого на стороне клиента, в случае подключении к подконтрольному злоумышленнику серверу, или на стороне сервера, если сервер запрашивает аутентификацию у клиента, подконтрольного атакующему.

    CVE-2023-0215 - обращение к области памяти после её освобождения (Use-after-free) в функции BIO_new_NDEF, применяемой для потоковой передачи данных ASN.1 через интерфейс BIO. Наиболее вероятно, что уязвимость ограничена возможностью инициирования аварийного завершения процесса.

    CVE-2022-4450 - двойное освобождение памяти после вызова функции PEM_read_bio_ex. Предполагается, что уязвимость ограничена возможностью инициирования аварийного завершения процесса.

    CVE-2023-0216 - некорректное разыменование указателя в функциях d2i_PKCS7(), d2i_PKCS7_bio() и d2i_PKCS7_fp() при обработке специально оформленных данных PKCS7. Уязвимость может привести к аварийному завершению процесса.

    CVE-2023-0217 - разыменование указателя NULL при проверке открытого ключа DSA в функции EVP_PKEY_public_check(). Предполагается, что уязвимость ограничена возможностью инициирования аварийного завершения процесса.

    CVE-2023-0401 - разыменование указателя NULL при проверке данных PKCS7. Предполагается, что уязвимость ограничена возможностью инициирования аварийного завершения процесса.


Новость позаимствована с opennet.ru
Ссылка на оригинал: https://www.opennet.ru/opennews/art.shtml?num=58622

Жизнь за Нер'зула!

Ответить