CVE-2026-34580Botan是一个C++加密库。在3.11.0版本中,`Certificate_Store::certificate_known`函数存在逻辑缺陷。该函数仅检查DN和SKI匹配,未验证证书是否完全一致,导致路径验证逻辑错误。攻击者可利用此漏洞,使终端实体证书被误认为是受信任的根证书,从而绕过安全验证,造成完整性破坏。该漏洞已在3.11.1版本中修复。
该漏洞源于Botan 3.11.0版本对`Certificate_Store::certificate_known`函数的实现缺陷及路径验证逻辑的错误扩展。该函数本意是检查特定证书是否在存储中已知,但实际实现仅比较了证书的专有名称(DN)和主题密钥标识符(SKI),而非完整的证书指纹或公钥。3.11.0版本的路径验证逻辑错误地假设该函数仅在证书完全一致时才返回真。利用此漏洞,攻击者只需生成一个恶意终端实体证书,使其DN和SKI与系统中存储的某个受信任根证书相同。当该恶意证书被提交验证时,系统会错误地将其识别为受信任根证书,立即接受其有效性,从而绕过了正常的信任链验证机制,导致中间人攻击或伪造签名成为可能。