漏洞概述 漏洞名称: LFS dedupe path leaks private repo content across tenants 漏洞描述: Git LFS存储是基于OID(对象ID)的,但per-repo授权存在于LFS对象表键中。 在OID已经存在于磁盘上时会跳过re-uploading,并插入一个新的 行,指向一个没有验证请求主体哈希是否与OID匹配的 端点。任何具有写入访问权限的用户都可以绑定他们的仓库到由私有仓库拥有的OID,并通过他们自己的下载端点下载原始字节。 影响范围 受影响版本: < 0.14.3 修复版本: 0.14.3 严重程度: 7.1 / 10 CVSS v4 base metrics: - Attack Vector: Network - Attack Complexity: Low - Attack Requirements: None - Privileges Required: Low - User Interaction: None - Confidentiality: High - Integrity: Low - Availability: Low 修复方案 1. 在LocalStorage.Upload中: 当 为 时,将请求主体哈希到 和 上。如果发生不匹配,相同的代码路径已经用于新文件分支。客户端在部分失败后重试,用例仍然有效;现在只需发送正确的内容。 2. 在 中: 拒绝 ,除非OID在请求仓库的refs中被引用。 POC代码 独立确认 影响 跨租户披露: 任何LFS对象在实例上。攻击者需要HTTP写入访问一个仓库 + 目标OID的知识。存储路径是全局的,没有per-repo隔离。 LFS常见存储: 证书/密钥、固件blobs、ML模型权重、包含PII的数据集、打包的安装程序——所有提取的字节。 持久性: 即使 行被手动删除,移除bob的仓库写入访问也不会撤销先前的绑定。没有观察到受害者侧在LFS访问路径之外的影响。