漏洞概述 标题: Certificate Trust List Check issue: well formed untrusted certificate might be considered trusted 描述: 在证书验证过程中,所有证书验证步骤(如6部分v1.05.06所述)在验证对等证书时都会被应用。然而,在Trust List Check步骤中,比较的是对等证书链中的匹配证书,而不是受信任的证书。这种比较可能不完整,可能导致将具有相同主体名称和相同证书长度但不同密钥的证书视为匹配。只有前几个字节对应于主体长度会被比较,而不是整个证书长度。 注意: - 由于其他所有步骤都被应用,证书链的证书必须是有效的(但可以是未受信任的),并且其他所有步骤必须成功。 - 该问题涉及MbedTLS包装器和CycloneCrypto包装器。 影响范围 代码版本和环境标识: - 自发布版本1.5.0起存在此问题。 - 在master分支中,提交号为b307f675。 修复方案 复现步骤: 1. 使用新密钥创建自签名证书。 2. 创建另一个具有相同配置(主体名称相同且总长度相同)和新密钥的证书,并强制其序列号值比第一个小。 3. 将第二个证书添加到受信任的服务器PKI中。 4. 使用第二个证书成功连接到服务器,尽管该攻击者证书实际上未受信任。 POC代码 其他信息 状态: 关闭 创建时间: 3周前 创建者: Vincent Monfort 标签: Client, Security, Server 里程碑: S2OPC_Toolkit1.7.3 参与者: 3人