CVE-2022-39253
Git 通过符号链接的本地克隆暴露敏感信息
- 已发布
- 2022年10月19日
- 已更新
- 2024年8月3日
- 分配 CNA
- GitHub_M
- 观察到的证据
- 2026年8月4日
初级CVSS
nvd · CVSS 3.1
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N低 · 未来 30 天
- 百分位
- 68.2%
- 型号日期
- 2026年9月21日
EPSS 是统计估计,而不是确定性或影响衡量标准。将其与 CVSS、KEV 状态、暴露程度和您的环境相结合。
总结
Git 是一个开源、可扩展的分布式版本控制系统。2.30.6、2.31.5、2.32.4、2.33.5、2.34.5、2.35.5、2.36.3 和 2.37.4 之前的版本存在敏感信息暴露给恶意行为者的风险。在执行本地克隆(即克隆的源和目标位于同一卷上)时,Git 会通过创建指向源内容的硬链接,或复制这些内容(如果通过 `--no-hardlinks` 禁用了硬链接),将源的 `$GIT_DIR/objects` 目录内容复制到目标位置。恶意行为者可能诱骗受害者克隆一个包含指向受害者机器上敏感信息的符号链接的仓库。这可以通过让受害者克隆同一台机器上的恶意仓库来实现,也可以通过让受害者从任何来源克隆一个以裸仓库形式嵌入为子模块的恶意仓库来实现,前提是他们在克隆时使用了 `--recurse-submodules` 选项。Git 不会在 `$GIT_DIR/objects` 目录中创建符号链接。该问题已在 2022-10-18 发布的版本中得到修复,并已向后移植到 v2.30.x。潜在的解决方法:在共享机器上,避免使用 `--local` 优化来克隆不受信任的仓库,可以通过向 `git clone` 传递 `--no-local` 选项,或从使用 `file://` 方案的 URL 进行克隆。或者,避免使用 `--recurse-submodules` 从不受信任的来源克隆仓库,或运行 `git config --global protocol.file.allow user`。
来源
1针对CVE-2022-39253的概念验证漏洞利用,演示通过恶意Git仓库构建实现Docker容器逃逸,从而能够读取主机文件系统。
负责任的使用
仅在您拥有或有权测试的系统上使用漏洞信息。 Kitploit 链接到公共研究元数据,并且不存储漏洞代码或恶意负载。