CVE-2026-22703Cosign是一个用于容器和二进制代码签名及透明度验证的工具。该漏洞存在于2.6.2和3.0.4之前的版本中,攻击者可以精心构造恶意的Cosign bundle,使其在验证时绕过安全检查。具体而言,当验证Rekor条目时,Cosign虽然会验证Rekor条目签名,但缺少对artifact摘要、用户公钥和artifact签名与Rekor条目内容的比对验证。这一缺陷使得Cosign可能接受任何来自Rekor服务器的响应为有效,即使该响应与实际artifact无关。攻击者如果成功获取用户身份或签名密钥的访问权限,可以构造包含任意Rekor条目的有效Cosign bundle,从而阻止用户审计签名事件,严重影响代码签名机制的完整性和可审计性。
在Cosign的bundle验证机制中存在严重缺陷。正常流程中,Cosign在验证Rekor条目时应执行三重比对:(1)比对待验证artifact的摘要与Rekor条目中记录的内容;(2)比对签名者的公钥(来自Fulcio证书或用户直接提供)与Rekor条目中的公钥;(3)比对artifact的实际签名与Rekor条目中存储的签名。然而,由于代码实现中缺少这些关键比对逻辑,系统仅验证了Rekor条目本身的签名有效性,而未验证条目内容与待验证artifact之间的关联性。这意味着攻击者可以使用任意有效的Rekor条目(即使该条目与目标artifact完全无关)来构建bundle,Cosign仍会将其视为合法验证通过。攻击者需要具备一定条件才能利用此漏洞,如获取用户的签名密钥或Fulcio证书的访问权限。