CVE-2026-34582Botan是一个C++加密库。在3.11.1版本之前,其TLS 1.3实现存在逻辑缺陷,允许在握手完成前处理应用数据。攻击者可利用此漏洞,通过省略证书验证消息直接发送数据,从而绕过必须的客户端证书认证。这导致依赖Botan进行严格身份验证的服务面临未授权访问风险,严重威胁数据机密性和完整性。
该漏洞核心在于Botan的TLS 1.3状态机未能正确校验握手顺序。根据RFC 8446标准,TLS 1.3连接必须在握手完全结束,即双方都发送并验证了Finished消息后,才能开始传输受保护的应用层数据。然而,Botan在受影响版本中存在逻辑缺陷,当收到ApplicationData记录时,状态机未能严格阻止其在握手完成前被处理。攻击者可利用此漏洞,构造特制的恶意TLS客户端。在握手阶段,当服务器请求客户端证书时,恶意客户端会忽略该请求,跳过发送Certificate、CertificateVerify及Finished消息,直接利用握手阶段建立的临时密钥发送加密的ApplicationData记录。由于服务器端逻辑错误,它会在未验证客户端身份的情况下处理这些数据。这直接破坏了TLS协议提供的安全性保证,导致基于证书的客户端强制认证机制完全失效。