
ASN1_STRING_set() 함수는 `int` 길이를 받으므로, asn1_ex_c2i()에서 호출될 때 인수가 의도치 않게 잘리지 않도록 해야 합니다.
이 패치는 OpenSSL ASN.1/DER 디코딩 코드의 정수 잘림(integer truncation) 문제를 해결합니다.
다음과 같은 변경이 이루어졌습니다:
ASN.1 콘텐츠 길이 타입 업데이트
asn1_ex_c2i()의 len 매개변수를 int에서 long으로 변경했습니다.길이 잘림 검증 추가
len의 int 표현을 담기 위한 ilen 변수를 도입했습니다.long 길이가 int에 안전하게 들어갈 수 있는지 확인하는 검사를 추가했습니다.TOO_LONG 오류를 반환합니다.원시 변환 처리 업데이트
prim_c2i() 콜백은 이제 길이가 int로 안전하게 표현될 수 있을 때만 호출됩니다.int를 기대하는 함수에 전달되는 것을 방지합니다.ASN.1 객체 변환 업데이트
ossl_c2i_ASN1_OBJECT()를 호출하기 전에 동일한 길이 검증을 추가했습니다.ASN.1 문자열 처리 업데이트
ASN1_STRING_set0() 및 ASN1_STRING_set()이 원래의 잠재적으로 과도하게 큰 len 대신 검증된 ilen 값을 사용하도록 변경했습니다.이러한 변경은 지원되는 int 범위를 초과하는 공격자 제어 ASN.1 길이가 조용히 잘린 후 버퍼 작업에 사용되는 것을 방지합니다. 이는 잘못된 길이 계산을 방지하고 CVE-2026-34180과 관련된 힙 버퍼 과다 읽기(heap buffer over-read) 조건을 완화합니다.