← 文章 / 编程开发
rustsec 14小时前 · 2026-09-28 17:43:53 · 0 阅读

RUSTSEC-2026-0312:x509-validator 中的漏洞

当 excluded_subtrees 的 iPAddress 名称约束使用全零掩码(0.0.0.0/0 或 ::/0)时,不会对其下签发的证书中的 iPAddress SAN 产生任何限制。掩码校验逻辑把全零掩码当作不匹配任何地址,但实际上 /0 前缀应当匹配该地址族的所有地址,因此这条排除规则被静默忽略了。

CA/Browser Forum Baseline Requirements §7.1.2.5.2 明确要求:所有不得签发 IP 地址证书的受技术约束的子 CA,都必须带有这类排除项。结果就是,任何持有(或已攻陷)此类子 CA 密钥的人,都可以为任意 IP 地址签发证书,而启用 RFC5280Policy 和 ServerIdentityPolicy 的 Validator 会认可该证书对此地址有效。即使同一签发者上存在 permitted_subtrees 的 dNSName 条目也无法阻止,因为 iPAddress SAN 属于另一种名称形式。

当证书链中可能出现带有全零 iPAddress 排除项的名称约束签发者时,所有使用 RFC5280Policy 的 Validator 用户均受影响。

该问题已在 x509-validator 0.3.1 中修复(commit da661f8)。 建议用户升级到 0.3.1 或更高版本。

本公告以 CC0-1.0 许可证发布。

原始来源: rustsec

评论 (0)