CVE-2026-111760递归克隆期间执行代码
特制路径可用符号链接替换子模块的 gitfile,指向攻击者控制的 Git 配置或钩子。维护者描述的前提是用 --recurse-submodules 克隆攻击者托管的仓库。
Git 为七个版本系列发布更新,修复六个漏洞。递归克隆攻击者托管的仓库可在克隆主机上执行代码。其他漏洞涉及不可信引用、标签、合并、二进制补丁及 fast-import 输入流。
Git 的 11 月更新修复了一条代码执行路径。超长索引条目使用完整名称通过路径校验,写入时却使用截断的名称。递归克隆过程中,这可能用符号链接替换子模块的 gitfile,随后以执行克隆的用户或任务权限运行代码。维护者描述的前提是仓库由攻击者托管,且通过 --recurse-submodules 进行递归克隆。即使顶层仓库在熟悉的代码托管平台,也可能通过 .gitmodules 指向另一台主机上的恶意子模块。
GitHub 表示已在 GitHub.com、GitHub Enterprise Cloud 及其数据驻留服务部署修复。11 月 10 日公告单独列出了 GitHub Enterprise Server 更新,并称 Actions、Codespaces、GitHub Desktop 和 Copilot 应用将获得包含修复的 Git。请在实际运行 Git 的环境中核对版本。发行版软件包可能用不同的包版本提供回移补丁。维护者确认受影响版本可追溯至 2.27.0,并未为低于 2.50 的分支提供上游维护版本。请迁移旧安装,或向维护当前构建的发行方核实修复。
其他五个漏洞各有不同的触发输入。例如,若服务使用拟合并树中的属性检查能否合并,攻击者可以借该服务触发三方合并漏洞。在相关服务完成更新前应避免处理不可信输入。
CVE-2026-111760特制路径可用符号链接替换子模块的 gitfile,指向攻击者控制的 Git 配置或钩子。维护者描述的前提是用 --recurse-submodules 克隆攻击者托管的仓库。
使用 files 引用后端从恶意 Git 协议 v2 服务器克隆空仓库时,Git 可能保存格式异常的未创建分支 HEAD 目标。后续更新分支可能写入引用目录之外。
合并含两个以上 GPG 签名的特制标签可能破坏栈内存并使 Git 崩溃,也影响代用户执行该合并的服务。
应用解压后超限的压缩二进制补丁可能绕过输入大小限制并使 Git 崩溃。
合并输出过大可使大小计算溢出。操作从相关树读取属性时,特制的 conflict-marker-size 可以放大输出。
不可信输入流可通过子模块标记重写读取文件,或通过 export-pack-edges 创建或追加文件。修复后须显式启用 --allow-unsafe-features 才能从流中使用这些功能。
| 产品 | 安全版本 | 备注 |
|---|---|---|
| Git 2.56 | 2.56.1 | |
| Git 2.55 | 2.55.1 | |
| Git 2.54 | 2.54.1 | |
| Git 2.53 | 2.53.1 | |
| Git 2.52 | 2.52.1 | |
| Git 2.51 | 2.51.3 | |
| Git 2.50 | 2.50.2 |
2026年11月10日
Git 发布六项修复
Git 2.56.1 和六个维护版本已发布。GitHub 报告托管服务已部署修复,并列出 GitHub Enterprise Server 更新。
我们列出每条说法和它的出处,并标出一手来源(厂商、研究人员、软件仓库)。各方说法不一致时,按最坏的可信情况定级。