CVE-2026-34610leancrypto是一个专注于后量子密码学算法的加密库。在1.7.1版本之前,其证书解析函数`lc_x509_extract_name_segment()`存在整数截断漏洞。攻击者可利用该漏洞构造特制的恶意证书,通过填充256字节数据绕过长度校验,使得恶意证书的通用名称(CN)与受害者证书完全一致。这导致在PKCS#7验证、证书链匹配和代码签名过程中发生身份伪造,严重威胁系统身份认证机制。
该漏洞源于`lc_x509_extract_name_segment()`函数在处理证书通用名称(CN)时的类型转换错误。代码将`size_t`类型的长度变量`vlen`直接转换为`uint8_t`类型进行存储。由于`uint8_t`最大只能表示255,当攻击者构造的证书CN长度为`N + 256`(N为受害者CN长度)时,计算过程`(uint8_t)(256 + N)`会发生截断回绕,结果等于`N`。在解析过程中,程序仅读取前N个字节作为CN,而攻击者精心构造的前N个字节与受害者的身份完全相同。因此,尽管实际证书数据不同,但在验证逻辑中,攻击者的证书被判定为与目标证书具有相同的CN。利用此漏洞,攻击者可以绕过PKCS#7签名验证、伪造证书链匹配,进而进行代码签名伪造或身份冒充攻击。