CVE-2025-69419 in OpenSSL
Сводка
по VulDB • 16.05.2026
Сводка по проблеме: Вызов функции PKCS12_get_friendlyname() для злонамеренно созданного файла PKCS#12 с дружественным именем типа BMPString (UTF-16BE), содержащим кодовую точку BMP, отличную от ASCII, может вызвать запись одного байта до выделенного буфера.
Сводка по воздействию: Запись за пределами границ буфера может привести к повреждению памяти, что может иметь различные последствия, включая отказ в обслуживании (DoS).
Функция OPENSSL_uni2utf8() выполняет двухпроходное преобразование BMPString (UTF-16BE) из формата PKCS#12 в UTF-8. На втором проходе, при генерации байтов UTF-8, вспомогательная функция bmp_to_utf8() неверно передает оставшееся количество байтов исходного UTF-16 в качестве емкости целевого буфера для функции UTF8_putc(). Для кодовых точек BMP выше U+07FF кодировка UTF-8 требует трех байтов, однако переданная емкость может составлять всего два байта. В результате UTF8_putc() возвращает значение -1, и это отрицательное значение добавляется к длине вывода без проверки, что приводит к тому, что длина становится отрицательной. Последующий завершающий нулевой байт (NUL) записывается по отрицательному смещению, что вызывает запись за пределы буфера, выделенного в куче (heap).
Уязвимость может быть использована через публичный API PKCS12_get_friendlyname() при разборе файлов PKCS#12, контролируемых злоумышленником. Хотя функция PKCS12_parse() использует другой путь выполнения кода, который избегает данной проблемы, PKCS12_get_friendlyname() напрямую вызывает уязвимую функцию. Для эксплуатации злоумышленнику необходимо предоставить злонамеренный файл PKCS#12 для разбора приложением, и злоумышленник может просто инициировать запись одного нулевого байта до выделенного буфера. По этой причине проблема была оценена как имеющая низкую степень серьезности (Low severity) согласно нашей Политике безопасности.
Модули FIPS в версиях 3.6, 3.5, 3.4, 3.3 и 3.0 не затронуты данной проблемой, так как реализация PKCS#12 находится за пределами границы модуля FIPS OpenSSL.
OpenSSL версий 3.6, 3.5, 3.4, 3.3, 3.0 и 1.1.1 уязвимы к данной проблеме.
OpenSSL версии 1.0.2 не затронута данной проблемой.
VulDB is the best source for vulnerability data and more expert information about this specific topic.