该补丁修复了 OpenSSL ASN.1/DER 解码代码中的整数截断问题。
进行了以下更改:
更新了 ASN.1 内容长度类型
asn1_ex_c2i() 的 len 参数从 int 改为 long。添加了长度截断验证
ilen 变量,用于保存 len 的 int 表示。long 长度能否安全地放入 int 中。TOO_LONG 错误,而不是继续使用不正确的截断长度。更新了原始类型转换处理
int 时,才会调用 prim_c2i() 回调。int 的函数。更新了 ASN.1 对象转换
ossl_c2i_ASN1_OBJECT() 之前添加了相同的长度验证。更新了 ASN.1 字符串处理
ASN1_STRING_set0() 和 ASN1_STRING_set() 改为使用经过验证的 ilen 值,而不是使用原始的、可能过大的 len。这些更改可防止攻击者控制的、超出受支持 int 范围的 ASN.1 长度被静默截断并随后用于缓冲区操作。这可以防止不正确的长度计算,并缓解与 CVE-2026-34180 相关的堆缓冲区过度读取情况。