漏洞概述 该漏洞涉及在Git LFS(Large File Storage)去重过程中,内容哈希验证的缺失。具体来说,当磁盘上已存在对象文件时,LFS上传处理程序会接受请求并返回现有文件的大小,而未验证请求对象是否确实哈希到声称的OID(对象ID)。这可能导致用户通过发送包含任意字节的PUT请求,读取原始内容并通过其自身的下载端点返回。 影响范围 影响版本:0.14.3 影响组件:Git LFS 影响用户:具有写入权限的用户可以将他们的仓库绑定到属于私有仓库的OID,从而可能泄露私有仓库的内容。 修复方案 修复措施:在去重路径中,现在会对请求体进行哈希并拒绝上传,如果内容不匹配声称的OID。这确保了即使内容不匹配,也会像以前一样始终执行新文件路径的验证。 修复提交: 修复分支: 修复里程碑:0.14.3 POC代码 其他信息 漏洞报告:Go Vulnerability Bot 提到了潜在的 Go 漏洞,链接为 xvulndb: potential Go vuln in gogs.io/gogs: GHSA-6p9m-q3jp-47h4 相关讨论:GitHub Issue #8333 以上是对该漏洞的简洁总结。