CVE-2026-23992go-tuf是The Update Framework(TUF)的Go语言实现,用于软件更新系统的安全框架。在2.0.0版本至2.3.1版本之前,存在一个严重的安全配置问题:受攻击者控制或配置错误的TUF仓库可以将签名阈值设置为0,导致签名验证机制被完全禁用。当签名阈值为0时,系统不会对TUF元数据文件进行任何完整性检查,这意味着攻击者可以在存储或传输过程中未经授权地修改TUF元数据文件。由于TUF框架广泛用于软件更新分发系统,此漏洞可能导致恶意更新包被分发给用户,造成供应链攻击风险。攻击者可以利用此漏洞伪造软件更新,在用户不知情的情况下植入恶意代码,影响范围涉及所有使用受影响版本go-tuf库进行软件更新的应用程序。
漏洞根源在于go-tuf库对签名阈值(signature threshold)的验证不足。在TUF规范中,每个元数据角色(如root、targets、snapshot、timestamp)都需要配置最小签名数量阈值,只有收集到足够数量的有效签名后,元数据才被认为是可信的。然而,受影响的go-tuf版本允许将阈值设置为0,使得即使没有任何有效签名,元数据也能通过验证过程。具体技术细节如下:1)当解析TUF仓库配置时,代码未验证阈值是否大于0;2)签名验证函数在threshold=0时会直接返回成功;3)攻击者只需确保元数据文件格式正确,无需任何签名即可上传;4)客户端在下载更新时会信任这些无有效签名的元数据。攻击者可以通过中间人攻击拦截传输中的元数据,或直接入侵TUF仓库服务器来修改元数据文件,由于签名验证被禁用,修改后的恶意元数据将被客户端接受。