Newshot
Account

Git修复代码执行高危漏洞,递归克隆恶意仓库可触发攻击

Summary

核心漏洞为整数截断问题,子模块场景可触发代码执行 Git存在一处高危代码执行漏洞,若用户递归克隆包含子模块的恶意仓

Original text(via FreeBuf)
image
image

核心漏洞为整数截断问题,子模块场景可触发代码执行

Git存在一处高危代码执行漏洞,若用户递归克隆包含子模块的恶意仓库,攻击者可在用户设备上执行任意代码。Git项目本周在2.56.1版本中修复了该漏洞,同时为2.50至2.55版本系列推送了对应补丁,覆盖2.50.2、2.51.3、2.52.1、2.53.1、2.54.1、2.55.1等版本。

该漏洞编号为CVE-2026-111760,成因是Git处理索引时存在整数截断问题。仓库中的超长路径可绕过Git的安全校验,Git后续将路径写入磁盘时会截断为较短文件名,攻击者可将截断后的文件名设置为.git。

攻击者可借助这一问题,将子模块的.git文件替换为符号链接,指向存放恶意钩子或恶意配置的文件夹。钩子是Git在特定操作节点自动运行的程序,一旦Git调用该文件夹内的内容,攻击者植入的代码就会执行。

子模块是触发该漏洞的关键条件。Git本身不允许将.git文件夹替换为符号链接,但在新克隆的子模块中,.git本身是文件而非文件夹,因此可以被替换。修复后的版本会在路径长度被截断前直接拦截这类超长路径,从根源阻断攻击路径。

多平台同步推送修复,未升级用户可采取临时防护

GitHub在旗下多款工具中内置了Git组件,该公司已发布详细公告说明修复方案,建议用户通过操作系统或Git发行渠道安装修复版本,同时更新所有内置Git副本的应用。

目前GitHub已为github.com和GitHub Enterprise Cloud部署了修复补丁。GitHub Enterprise Server的修复覆盖3.19.15、3.20.11、3.21.9、3.22.4等版本。GitHub Desktop和GitHub Copilot的修复版本正在筹备中,GitHub Codespaces、GitHub Actions也将同步更新内置的修复版Git。

据The Hacker News核对Git for Windows的发布标签信息,截至UTC时间周二19:09,该项目尚未发布基于Git 2.56.1的修复版本。

在安装正式修复版本前,GitHub给出了以下临时缓解措施,注意这些措施无法替代官方补丁:

  • 仅克隆来自可信服务器的仓库
  • 不要递归克隆来源不可信的仓库
  • 不要合并不受信任的内容或标签
  • 不要处理来自不可信来源的二进制补丁或fast-import流

同批次修复五个漏洞,托管平台面临特定攻击风险

本次Git版本更新还同步修复了另外五个安全漏洞,涵盖路径遍历、拒绝服务、越界读写、任意文件访问等多种风险类型。

  • CVE-2026-113408:用户通过Git协议v2克隆空仓库时,恶意服务器可发送包含路径遍历特征的分支名。若使用文件引用后端,后续对该分支的更新可将文件写入Git引用文件夹之外的位置。
  • CVE-2026-114467:合并携带超过两个GPG签名的标签会破坏Git栈内存,可导致拒绝服务,为用户提供合并操作服务的代码托管平台也可能受影响。
  • CVE-2026-114469:解压后体积极大的二进制补丁可绕过Git约1GiB的补丁大小限制,触发越界读取导致Git崩溃。
  • CVE-2026-105437:若合并操作规模极大,包含大量冲突且设置了较大的conflict-marker-size属性,Git会向容量不足的缓冲区写入越界数据,破坏堆内存。
  • CVE-2026-114466:git fast-import的三个功能rewrite-submodules-from、rewrite-submodules-to、export-pack-edges可被利用读取任意文件,或创建文件写入数据。目前Git已默认拒绝输入流中出现这类指令,除非用户主动设置--allow-unsafe-features参数。

CVE-2026-105437由GitLab分配编号。GitLab表示,代码托管服务器最可能通过git merge-tree功能遭到该漏洞攻击,服务器通常会运行该命令检查拉取请求或合并请求是否可正常合并。攻击者可在提交到仓库的.gitattributes文件中设置conflict-marker-size属性,如果服务器直接读取仓库内的属性配置,任何拥有分支推送权限、可发起拉取或合并请求的用户都能触发该漏洞。

暂时无法升级的服务器可采取临时缓解措施:在每个仓库的info/attributes文件中添加conflict-marker-size=7配置,或对不受信任的仓库关闭这类合并检查。

Git Patches Flaw That Lets Malicious Repositories Execute Code During Recursive Clones

The text above was extracted automatically from the source page and may miss images, tables or code blocks. The original is authoritative.

Published by FreeBuf
This site only summarises and aggregates; copyright stays with the original author. Headlines and summaries follow the source — where they differ, the original wins.
Read the original ↗