Gitea 新远程代码执行漏洞:仓库写权限用户可植入 Git 钩子执行 Shell 命令
导语:Gitea 自托管 Git 平台修复了一个高危 RCE 漏洞 CVE-2026-60004(CVSS 9.8),普通仓库写权限用户可借此植入 Git 钩子执行 Shell 命令,影响 1.17 至 1.27.0 版本,默认开放注册特性使攻击者无需任何已有凭证即可利用。
Gitea 是一个自托管的 Git 平台,该项目已修补一个高危远程代码执行(RCE)漏洞。拥有普通仓库写权限的用户能够将攻击者控制的补丁内容转化为实际生效的 Git 钩子,进而以 Gitea 服务账户的身份运行任意 Shell 命令。
该漏洞编号为 CVE-2026-60004(CVSS 评分:9.8),影响 Gitea 1.17 及以上、1.27.1 之前的所有版本,并已在 1.27.1 中修复。触发该漏洞的 API 调用要求请求者已完成身份认证,并具备相应仓库的写权限。但由于 Gitea 默认开启开放注册,外部访问者可以在未经修改的实例上直接创建普通账户和仓库,无需任何已有凭证即可利用该漏洞。
修复方式为升级至 1.27.1。Gitea 于 7 月 27 日表示,Gitea Cloud 实例将自动完成升级。Gitea 在 7 月 28 日发布的安全公告中并未说明该漏洞是否已在野外被利用,但公告中包含了公开的概念验证(PoC)代码。
在升级部署完成之前,禁用开放注册可以阻断公开创建账户的路径,但这并不能修复漏洞本身,也无法防范已具备仓库写权限的内部用户。
该漏洞由安全研究员 Shai Rod(网名 NightRang3r)报告。Gitea 在其安全公告中将 NightRang3r 列为漏洞上报者。
Gitea 受影响的路由会调用 reqToken(),该函数会拒绝未登录用户发起的请求。无需预先凭证这一利用路径源自项目的默认配置:注册处于开放状态,既不需要邮箱验证,也无需人工审批,新创建的用户不会被标记为受限状态,并且没有默认的仓库创建数量限制。
漏洞位于 POST /api/v1/repos/{owner}/{repo}/diffpatch 接口。根据 Gitea 的安全公告,该接口会在一个共享的 bare(裸)临时克隆中应用提交的补丁。受影响版本的代码会以 –index、–recount、–cached 和 –binary 参数调用 git apply,并在服务器运行 Git 2.32 或更高版本时额外加入 -3 这一三路合并回退选项。
攻击者将同一份补丁提交两次即可制造 add/add 冲突。随后三路合并回退机制会将已建立索引的路径检出,即使该操作使用的是 –cached 参数。由于该临时克隆是 bare 仓库,其根目录即为 $GIT_DIR。攻击者只需在 hooks/post-index-change 位置放置一个可执行文件,即可使其落入 Git 的钩子目录并被激活。Git 在更新索引时会执行该钩子。

公开的 PoC 使用普通账户登录,创建一个已初始化的私有仓库,发送两次恶意补丁,并取回命令执行结果。该 PoC 不需要外向回连:钩子将执行输出存入 Git 对象,并创建一个包含结果数据的分支,攻击者随后可通过已认证的智能 HTTP 协议将其取回。
截至 2026 年 7 月 29 日,所引用的主要来源均未说明该漏洞在 1.27.1 发布之前或之后是否曾被实际利用。
成功利用后,攻击者将获得 Gitea 操作系统账户的权限。Gitea 警告称,根据实例的隔离方式,这可能暴露应用与环境密钥、已挂载的仓库、数据库凭据及其内容、OAuth 凭据以及可访问的内部服务。
利用该漏洞仍然需要具备仓库写权限、Git 2.32 或更高版本、已启用的 diffpatch 路由,以及一个可写且可执行的临时文件系统。在未经修改的默认实例上,开放注册使外部人员能够获得所需的写权限。
修复方式在更新日志中很容易被忽略。Gitea 将临时克隆从 bare 仓库改为非 bare 仓库。代码注释明确警告,使用 –index 的 Git 命令可能会对工作树进行操作。该改动已于 2026 年 7 月 26 日完成合并与回移植。
1.27.1 版本于 7 月 27 日发布,安全公告于 7 月 28 日发布。发布说明将该变更归类在 MISC(杂项)下,描述为 "refactor: git patch apply",而未归入 SECURITY(安全)类目。
Rod 在披露该 RCE 漏洞的同时,还展示了一个单独的文件包含问题,其 PoC 可从一个 Gitea 1.27.0 主机中读取 /etc/passwd。该问题似乎对应于 1.27.1 中包含的另一项变更,该变更修改了 Gitea 的 Org-mode 渲染器,使 #+INCLUDE 路径以纯文本形式返回,而不是从服务器文件系统中读取。Gitea 尚未为该文件包含问题发布单独的安全公告或 CVE 编号。
来源信息
来源:The Hacker News
原文链接:https://thehackernews.com/2026/07/new-gitea-rce-lets-repository-writers.html
作者:info@thehackernews.com (The Hacker News)

