CVE-2026-23991CVE-2026-23991是go-tuf项目中的一个拒绝服务漏洞。go-tuf是用Go语言实现的The Update Framework(TUF)规范,一个用于安全软件更新和文件发布的框架。该漏洞影响从2.0.0版本开始到2.3.1之前的所有版本。攻击者可以通过让TUF仓库(或其任何镜像)返回无效的TUF元数据JSON(格式正确的JSON但不符合TUF元数据规范)来触发客户端在解析时发生panic,从而导致拒绝服务攻击。值得注意的是,这种panic发生在任何签名验证之前,这意味着被入侵的仓库、镜像或缓存可以在不需要任何签名密钥的情况下对客户端进行DoS攻击。攻击者利用此漏洞无需获取任何签名密钥权限,只需控制或篡改TUF仓库返回的元数据内容即可使目标系统崩溃。该漏洞已被官方在2.3.1版本中修复,但目前没有已知的临时缓解措施可供使用。对于依赖go-tuf进行安全更新的系统来说,应尽快升级到修复版本以防止潜在的攻击风险。
go-tuf在解析TUF元数据JSON时存在输入验证不足的问题。当客户端从TUF仓库或镜像获取元数据文件时,如果返回的JSON数据是语法有效的JSON,但不符合TUF规范定义的元数据结构和约束条件,解析器会直接panic而非优雅地处理错误。这个panic发生在签名的验证流程之前,因此攻击者无需持有任何有效的签名密钥即可触发该漏洞。攻击者可以通过以下方式利用此漏洞:1)入侵TUF仓库服务器并篡改元数据文件;2)控制TUF镜像并在响应中注入恶意构造的JSON;3)中间人攻击拦截并修改合法的元数据响应。漏洞的根本原因在于go-tuf库在解析元数据时缺少对JSON结构的事前验证,假设所有来自仓库的数据都是格式正确的TUF元数据。修复方案在版本2.3.1中增加了对元数据JSON结构的事前验证,确保在解析失败时能够返回错误而不是panic。攻击者构造的恶意JSON通常包含不匹配的字段类型、缺失必需字段或包含非法值等不符合TUF规范的内容。