# GitHub 曝严重 RCE 漏洞 CVE-2026-3854，单次 git push 即可攻破后端服务器

**日期：** 2026-04-28 | **来源：** Wiz Research

---

Wiz Research 团队发现了一个存在于 GitHub 内部 git 基础设施中的严重安全漏洞 CVE-2026-3854，CVSS 评分为 8.7（高危）。该漏洞允许任何经过身份验证的用户通过一次精心构造的 `git push` 命令，在 GitHub 后端服务器上执行任意代码。

## 漏洞影响

该漏洞同时影响 GitHub.com（SaaS）和 GitHub Enterprise Server（GHES）：

- **GitHub.com：** 可在共享存储节点上实现 RCE，其他用户的数百万公共和私有仓库可被读取
- **GitHub Enterprise Server：** 可实现服务器完全控制，访问所有托管的仓库和内部密钥

GitHub 在收到报告后 6 小时内完成了 GitHub.com 的修复。GHES 已在 3.19.3 版本及多个旧版本分支中发布补丁。但截至发稿，仍有约 88% 的 GHES 实例未打补丁。

## 漏洞技术细节

### 攻击链（3 步）

1. **绕过沙箱：** 通过注入 `rails_env` 字段，使钩子执行从沙箱模式切换到非沙箱模式
2. **重定向钩子目录：** 注入 `custom_hooks_dir` 字段控制钩子脚本的查找路径
3. **注入恶意钩子定义：** 通过路径遍历执行文件系统上的任意二进制文件

### 核心问题

漏洞的根源在于 GitHub 的 X-Stat 头部解析机制。当用户通过 SSH 执行 `git push` 时，`babeld`（Git 代理）将 `git push -o`（推送选项）**直接复制到 X-Stat 头部中而不对分号进行转义**。由于分号是 X-Stat 的字段分隔符，攻击者可以注入任意安全敏感字段（如 `rails_env`、`custom_hooks_dir`、`large_blob_rejection_enabled` 等），从而逐步实现 RCE。

### 攻击命令示例

```bash
git push -o '<注入字段>' origin master
# 输出: uid=500(git) gid=500(git) groups=500(git)  ← RCE 以 git 用户执行
```

## 所需操作

| 平台 | 操作 |
|------|------|
| GitHub.com | 无需操作（已修复） |
| GitHub Enterprise Server | 立即升级至 3.19.3 或对应补丁版本 |

## 安全启示

这是首批通过 AI 辅助发现的闭源二进制文件中的关键漏洞之一，标志着安全研究方法的转变。Wiz 团队利用 AI 工具分析闭源的 git 代理二进制文件，发现了传统人工审计难以察觉的注入路径。

---

## 参考链接

- [Wiz Blog: GitHub RCE Vulnerability CVE-2026-3854 Breakdown](https://www.wiz.io/blog/github-rce-vulnerability-cve-2026-3854)
