CVE-2026-60004:Gitea diffpatch 接口曝 Git Hook 远程代码执行漏洞,PoC 与挖矿木马已在野扩散

CISA 已于近期将一个影响 Gitea 自托管 Git 平台的远程代码执行漏洞正式列入 Known Exploited Vulnerabilities 目录,对应编号为 CVE-2026-60004,CVSS 评分高达 9.8 分(Critical)。该漏洞位于 Gitea 的 diffpatch API 端点,攻击者只要拥有仓库写权限,就可以借助 Git 的三路合并回退机制,向 Gitea 临时克隆库写入可执行的 hooks/post-index-change Git Hook,从而以 Gitea 服务账户身份执行任意 shell 命令。由于 Gitea 默认开启开放注册,配合公开的 PoC 脚本,互联网暴露的自托管实例正大规模沦为挖矿木马的跳板。

事件概述

漏洞编号:CVE-2026-60004,CWE-94 Improper Control of Generation of Code(’Code Injection’)。
CVSS v3.1 基础评分:9.8,攻击向量 AV:N、攻击复杂度 AC:L、所需权限 PR:N、用户交互 UI:N,影响范围 Scope Unchanged。
披露日期:2026 年 8 月 8 日;补丁发布日期:2026 年 7 月 27 日(v1.27.1),安全公告同日发布。
在 CISA KEV 中:是的,已确认在野利用。
漏洞影响版本:Gitea 1.17 至 1.27.0 全分支。
漏洞修复版本:Gitea 1.27.1 及之后所有分支。

技术细节

Gitea 的 /api/v1/repos/{owner}/{repo}/diffpatch 端点用于接收用户提交的补丁,并使用 git apply --cached 命令将补丁应用到临时创建的 bare 仓库。这一过程本应只更新索引、不应向磁盘写出文件,但代码在 --cached 之外还隐式追加了 --index --recount --binary 参数。

当 Git 版本 ≥ 2.32 时,git apply 在遇到 add/add 冲突时会回退到三路合并机制(-3)。攻击者只需将同一份补丁连续提交两次,就能触发 add/add 冲突,进而让三路合并回退忽略 --cached,把文件 checkout 到工作树。在 bare 仓库里,工作树根目录就是 $GIT_DIR 本身,因此攻击者提交的 hooks/post-index-change(权限位 100755)会被写入为活动 Git Hook。下一次 Git 写索引时,Hook 自动运行,执行任意 shell 命令。

公开的 PoC(如 GitHub 上的 EQSTLab/CVE-2026-60004)已经把整条攻击链自动化:抓取注册页面 CSRF token → 注册随机账号 → 用 Basic Auth 登录 → 创建带初始化 main 分支的私有仓库 → 通过 diffpatch 端点投递预制 Git Hook 补丁 → 重复投递直到触发三路合并 → 通过认证的 Smart HTTP 把命令执行结果带回。Payload 通常是一段 POSIX sh hook,会调用 eval $(cat cmd.sh) 执行预置的恶意命令。

影响评估

成功利用后,攻击者将获得 Gitea 服务账户(默认 git 用户)的任意命令执行权限:

  • 读取所有托管仓库源代码,包括私有仓库;
  • 读取应用配置、环境变量、数据库凭证、OAuth Secret 等敏感信息;
  • 访问 CI/CD 与部署系统所用的密钥,构建供应链投毒;
  • 以 Gitea 服务账户为跳板,向容器宿主机或同网段内网横向移动。

已观测到的在野利用以加密货币挖矿为主:家族属于通用 miner 投放器,会先大量消耗 CPU 直到宿主机供应商限速。Mallory 平台统计显示,公开仓库中有效 PoC 数量已达 9 个,意味着脚本化扫描与一键利用的门槛已经接近为零。

修复建议

  • 立即升级:自托管 Gitea 全部升级至 1.27.1 或更高版本,Gitea Cloud 用户已被官方自动升级,无需操作;
  • 关闭开放注册:在配置中设置 DISABLE_REGISTRATION=true,强行要求邀请制或人工审核;
  • 收紧仓库写权限:审计所有组织/项目的写权限,清理过期账号与僵尸 Token;
  • 最小化服务账户权限:避免以 root 运行 Gitea 进程,使用专用低权限账户;
  • 网络隔离:把 Gitea 限制在内网或 VPN 之后,并对 3000 端口做来源限制;
  • 检测与告警:监控 /api/v1/repos/.../diffpatch 接口异常调用、异常 Git Hook 文件创建、Gitea 进程异常子进程、异常出口流量与 CPU 飙升;
  • 假定失陷:对 2026 年 7 月 28 日之后未打补丁且暴露在公网的实例,一律视为可能失陷,及时轮换数据库、OAuth、CI 凭据,并审查近期新增账号与仓库。

参考来源

  • Gitea 官方安全公告:GHSA-rcr6-4jqh-j84m
  • NVD 详情页:CVE-2026-60004
  • PoC 仓库:EQSTLab/CVE-2026-60004
  • The Hacker News 跟踪报道:Critical Gitea RCE Actively Exploited