CVE-2025-13151CVE-2025-13151是libtasn1库中的一个高危安全漏洞,存在于版本v4.20.0中。该漏洞为栈缓冲区溢出(Stack-based buffer overflow)类型,发生在asn1_expend_octet_string函数中。攻击者可通过构造特制的ASN.1数据触发此漏洞,导致程序崩溃或潜在的安全风险。libtasn1是GNU项目下的一个重要的ASN.1(Abstract Syntax Notation One)解析库,广泛应用于GnuTLS加密库及其他需要处理X.509证书、PKCS等加密标准的软件中。漏洞源于函数未能正确验证输入数据的大小,当处理畸形或恶意的ASN.1编码数据时,可能导致缓冲区溢出,覆盖栈上的其他数据或返回地址,造成程序异常终止或执行任意代码。由于该漏洞可通过网络远程触发,且不需要认证和用户交互,攻击者可利用此漏洞对使用libtasn1库的应用进行拒绝服务攻击或进一步利用。CVSS 3.1评分7.5(高危),对可用性造成严重影响(高),但对机密性和完整性影响较低。
libtasn1库的asn1_expend_octet_string函数在处理ASN.1编码的八位字节字符串(OCTET STRING)时存在栈缓冲区溢出漏洞。该函数负责扩展和解析ASN.1格式的八位字节字符串数据,但在实现过程中未能对输入数据的长度进行充分验证。具体问题在于函数在栈上分配固定大小的缓冲区,而ASN.1编码数据中的长度字段可能超出预期范围。当攻击者构造包含超大长度值的恶意ASN.1数据时,函数会将超出缓冲区容量的数据写入栈内存,覆盖相邻的栈帧数据、返回地址或其他关键变量。攻击者可通过精心设计的数据内容,控制溢出的数据方向和内容,可能实现代码执行或数据破坏。漏洞的利用需要攻击者能够向目标系统提交ASN.1编码的数据,通常通过TLS/SSL握手、X.509证书验证、LDAP查询或其他使用ASN.1编码的协议通道进行。修复方案需要在函数中添加对输入长度的严格验证,确保写入缓冲区的数据不超过分配的栈空间大小。