GitHub 内部 git 基础设施远程代码执行漏洞 CVE-2026-3854 详解
Wiz Research 在 GitHub 内部 git 基础设施中发现了一个严重的远程代码执行漏洞(CVE-2026-3854),攻击者仅需一个标准 git push 命令即可在 GitHub Enterprise Server(GHES)或 GitHub.com 的后端服务器上执行任意代码。
GitHub 在收到报告后 6 小时内修复了 GitHub.com,并于 2026 年 3 月 10 日发布 GHES 补丁。但截至公开披露时,Wiz 的扫描数据显示仍有约 88% 的 GHES 实例未升级修复。
漏洞概述
CVE-2026-3854 — CVSS 8.7(高危),CWE-77(命令注入)
任何拥有仓库 push 权限的已认证用户,通过注入 git push option 值到 GitHub 内部协议的 X-Stat 头字段,即可在服务端执行任意命令。攻击载体是标准的 git push,不需要任何特殊工具或非标准客户端。
- GitHub.com:RCE 在共享存储节点上。Wiz 确认受影响节点上可访问数百万个其他用户和组织的公开及私有仓库
- GHES:完全接管服务器,包括所有托管的仓库和内部密钥
这是首批通过 AI 辅助逆向工程在闭源二进制文件中发现的关键漏洞之一。Wiz 使用 IDA MCP 工具自动化逆向了 GitHub 的编译二进制文件,重建了内部协议,并系统性地识别了用户输入在整个管线中的影响点。
技术原理
漏洞根源:协议字段解析不一致
当用户执行 git push 时,代码会经过多个内部服务,每个服务由不同编程语言编写。这种多服务架构导致了各组件对共享数据解析和信任的不一致——特别是对内部协议中 X-Stat 头字段的分隔符处理。
X-Stat 头使用特定的分隔符来划分多个元数据字段。问题在于,用户通过 push option 提供的值中可以包含与内部协议相同的分隔符字符,而这些值在被拼接到 X-Stat 头之前没有得到适当的清理。攻击者可以借此注入额外的元数据字段。
攻击链
攻击分三个步骤:
第一步 — 注入 X-Stat 字段。 通过 crafted push option 值注入 rails_env 字段。GHES 的 pre-receive hook 二进制有两个执行路径:当 rails_env 为生产值时,hook 在沙箱内运行;当为其他任何值时,hook 以 git 服务用户身份直接运行,无沙箱隔离,具有完整的文件系统访问权限。
第二步 — 注入 hook 定义。 注入 repo_pre_receive_hooks,其中包含一个 hook 条目,其 script 字段包含路径遍历序列。二进制的路径解析将攻击者的 payload 与目标路径拼接,解析为服务器上任意位置的二进制文件。
第三步 — 在 GitHub.com 上激活。 GHES 上攻击链直接可用(企业模式默认开启)。GitHub.com 上企业模式默认关闭,但该标志同样通过 X-Stat 头传递,因此攻击者可以额外注入一个字段来启用它,从而在 GitHub.com 上实现完整的 RCE。
影响范围
- GHES:所有 ≤ 3.19.1 版本受影响。攻击者可完全接管服务器,访问所有仓库和内部密钥
- GitHub.com:已修复。受影响期间,攻击者可在共享存储节点执行代码,并访问同节点上其他用户的仓库数据
修复版本
| 版本线 | 修复版本 |
|---|---|
| 3.14.x | 3.14.24(Wiz Blog)/ 3.14.25(NVD 更新) |
| 3.15.x | 3.15.19 / 3.15.20 |
| 3.16.x | 3.16.15 / 3.16.16 |
| 3.17.x | 3.17.12 / 3.17.13 |
| 3.18.x | 3.18.6 / 3.18.7 |
| 3.19.x | 3.19.3 / 3.19.4 |
建议 GHES 管理员升级到各自版本线的最新补丁版本。GitHub.com 用户无需操作。
时间线
- 2026-03-04:Wiz Research 发现 X-Stat push option 注入漏洞,同日确认 GHES 3.19.1 上的 RCE,并向 GitHub 报告
- 2026-03-04:GitHub 确认接收报告,同日在 GitHub.com 部署修复
- 2026-03-10:CVE-2026-3854 分配(CVSS 8.7),GHES 补丁发布
- 2026-04-28:公开披露
安全建议
GHES 管理员应立即:
- 升级到修复版本(3.14.24+/3.15.19+/3.16.15+/3.17.12+/3.18.6+/3.19.3+)
- 审查 git 服务器日志,排查是否有可疑的 push 操作(可能表明已被利用)
- 审计拥有仓库 push 权限的账户,确认其合法性
- 在完成升级前,考虑临时限制 push 访问权限仅限受信任用户
来源:Wiz Blog · NVD · GitHub Security Blog
- 苹果警告:iOS 13/14 用户需立即升级至 iOS 153/20/2026
- DarkSword 被披露:Safari 打开恶意网页即可被入侵,旧版 iPhone 该升级了3/19/2026
- 装个App等24小时:Google给Android侧载上了把锁3/20/2026
- 苹果锁定模式近四年零攻破记录3/28/2026
- Google公布Android侧载新规:安装未验证应用须等24小时3/20/2026
- GrapheneOS 拒绝把操作系统做成身份核验入口3/24/2026
- 白宫官方 App 逆向拆解:付费墙绕过、休眠定位追踪与供应链风险3/28/2026
- Glassworm 把恶意代码藏进不可见 Unicode 字符,至少 151 个 GitHub 仓库受影响3/15/2026
- 有人在 GitHub 上开源了一个「前任 Skill」3/31/2026
- Android 17 后量子加密落地:系统可信根的量子抗性升级3/26/2026
- Apifox 桌面端被曝遭供应链投毒,恶意脚本可窃取 SSH 密钥与 Git 凭证3/25/2026
- OpenAI 开始给内部编码代理配“监工”,数千万轨迹里未见最高风险失调3/21/2026
- ICAO 紧急限制航班充电宝:每人最多 2 个,机上禁充3/28/2026
- Apifox 承认遭遇供应链攻击后,开发团队现在最该做的是全面轮替凭证3/26/2026
- 谷歌推出 DBSC 技术:通过设备绑定强化 Cookie 安全防护4/11/2026
- GitHub Issues 遭遇大规模垃圾广告攻击,开源社区成黑产引流池3/29/2026
- Vercel 确认安全事件,暗网卖家声称掌握核心访问权限4/19/2026
- LLM 供应链安全警钟:超 20% 免费 API 路由器存在恶意行为4/10/2026
- GitHub Copilot 数据政策更新:默认训练开关背后的边界转移3/26/2026
- ShinyHunters 入侵 Rockstar Games,通过第三方工具窃取 Snowflake 数据4/14/2026
- Claude 曝出「身份混淆」缺陷:AI 代理误认自身推理为用户指令,触发安全风险4/10/2026
- Copilot 悄悄改了 PR 描述,顺便给自己打了广告3/30/2026
- 深圳比亚迪坪山园区立体车库起火,官方称无人员伤亡4/14/2026
- 逆向 Claude Code 请求签名:cch 是怎么算出来的4/3/2026
- 金山毒霸与 360 安全卫士内核驱动曝高危漏洞4/13/2026
- CPU-Z 官网遭黑客入侵,部分下载包被植入恶意代码4/10/2026
- Anthropic 就 Claude Code 泄露提交 DMCA,8,100 个 GitHub 仓库被整体下架4/1/2026
- axios 供应链攻击:维护者账号遭劫持,恶意版本植入远程控制木马3/31/2026
- Copilot 在别人的 PR 里植入了推广内容,GitHub 紧急叫停3/31/2026
- Anthropic MCP 协议架构漏洞波及 1.5 亿次下载,20 万台服务器面临 RCE 风险4/21/2026