
Функция ASN1_STRING_set() принимает длину типа `int`; убедитесь, что аргумент не усекается непреднамеренно при вызове из asn1_ex_c2i().
Патч устраняет проблему усечения целых чисел в коде декодирования ASN.1/DER библиотеки OpenSSL.
Были внесены следующие изменения:
Обновлён тип длины содержимого ASN.1
len функции asn1_ex_c2i() изменён с int на long.Добавлена проверка усечения длины
ilen для хранения int-представления len.long может безопасно уместиться в int.TOO_LONG вместо продолжения работы с некорректной усечённой длиной.Обновлена обработка преобразования примитивов
prim_c2i() теперь вызывается только тогда, когда длина может быть безопасно представлена как int.int.Обновлено преобразование объектов ASN.1
ossl_c2i_ASN1_OBJECT().Обновлена обработка строк ASN.1
ASN1_STRING_set0() и ASN1_STRING_set() изменены для использования проверенного значения ilen вместо исходного потенциально слишком большого len.Эти изменения предотвращают молчаливое усечение контролируемой злоумышленником длины ASN.1, превышающей поддерживаемый диапазон int, и последующее её использование в операциях с буфером. Это предотвращает некорректные вычисления длины и устраняет условие переполнения буфера кучи при чтении, связанное с CVE-2026-34180.