Gogs 中的零日漏洞允许经过身份验证的用户进行 RCE | Metasploit 发布,无补丁

Rapid7 高级安全研究员 Jonah Burgess 在自托管 Git 服务 Gogs 中发现了一个未修补的零日漏洞。

这是一个参数注入漏洞,影响最新版本的 Gogs 0.14.2 和 0.15.0+dev,尚未分配 CVE ID。默认启用开放注册,因此没有管理员权限的用户可以创建帐户和存储库,然后通过“合并前重新设置基准”操作创建存储库。--exec注入标志允许在服务器上远程执行代码。

Burgess于3月17日向Gogs维护者报告了该问题,维护者于3月28日确认收到,但尚未提供补丁。 Shadowserver已确认超过2,400个公共服务器,Shodan已确认超过1,000个公共服务器,其中大部分位于亚洲(1,894个)和欧洲(319个)。上述 CVE-2025-8110 已于 1 月 12 日被 CISA 添加到 KEV 目录中。

从: 新的 Gogs 零日漏洞可让黑客远程执行代码

【编辑部评论】

该漏洞之所以如此令人不安,是因为它不需要高级权限或特殊的垫脚石即可进行攻击。当您使用默认设置启动 Gogs 时,会启用“开放注册”,允许任何人创建帐户,并且可以创建的存储库数量没有限制。换句话说,攻击者不需要欺骗任何人或针对管理员。攻击只能在您自己的帐户和您自己的存储库内完成。

技术核心在于一个称为“参数注入”的经典弱点。当 Gogs 处理拉取请求时,分支名称为git rebase它几乎不变地传递给命令,表示选项的结束。--我忘了放入分隔符。因此,分支名称本身可能会被误认为是命令语句。 Rapid7 将此漏洞评级为 CVSSv4 9.4(严重)。

影响范围绝不小。成功的攻击者可以读取服务器上某人的私有存储库,并窃取密码哈希、API 令牌、SSH 密钥,甚至双因素身份验证密钥。更可怕的是秘密修改托管代码。发展为“供应链攻击”是。如果被篡改的代码作为合法代码进行分发,损害将蔓延到单个服务器之外。

使情况变得更加严重的是维护者的沉默。 Rapid7 的 Jonah Burgess 于 3 月 17 日通过 GitHub (GHSA-qf6p-p7ww-cwr9) 报告了这一情况,尽管 3 月 28 日已确认收到,但尚未有进一步的沟通。伯吉斯还表示,当《The Register》联系他时,他没有收到任何进一步的回复。目前没有可用的补丁,Rapid7 本身已经提交了修复请求,正在等待审核。

另一方面,自动化攻击方法的 Metasploit 模块已经发布。这是一把双刃剑。虽然这对于防御者验证自己的环境很有用,但同时也降低了攻击的门槛。 Rapid7 表示,“目前我们尚未在现实​​世界中看到任何剥削的证据。”在目前只有攻击工具且没有补丁的情况下,我们正在与时间赛跑。你应该这样看待它。

我想退一步思考的是,这是一个单靠戈格斯的粗心无法解决的问题。正如 Burgess 指出的那样,Gogs 过去多次修复了类似的参数注入,包括 CVE-2024-39933。但这一次Merge()这条加工路线被忽视了。 “在不同地方重复相同类型的伤口”的构成是人力有限的开源项目的结构性风险代表得很好。

其实,这种“漏修”对于Gogs来说并不是第一次。前面的 CVE-2025-8110 也以规避 CVE-2024-55947 的方式被利用,而 CVE-2024-55947 本来应该在过去得到修复。 1月12日,美国CISA将该漏洞添加到KEV“已确认被利用的漏洞”目录中,并命令联邦机构在2月2日之前做出回应。修订版本 (v0.13.4) 已于 1 月底发布。鉴于严重漏洞接二连三地发生,当局和监控组织这次很可能也会采取行动。

拥有自己的 Git 服务器具有自治的巨大价值,无需依赖外部服务。 Gogs 是一个体现这一理念的热门项目,已经聚集了大约 48,000 个 GitHub star。然而“自己拥有”也意味着承担“自己保护、自己修复”的责任。。这个案例再次问我们,我们欠什么才能换取自托管的自由。日本的用户也应该检查当前的设置,不要将其视为“外国故事”。是明智的。

【术语解释】

零日漏洞
在开发者提供补丁之前发现并公布的漏洞。风险很高,因为在保护措施到位之前它就可能被利用。

参数注入 (CWE-88)
程序错误将从外部源接收到的字符串解释为命令的“参数(选项)”的弱点。这次,分支名称被视为命令指令。

远程代码执行 (RCE)
攻击者可以在目标服务器上远程执行任意程序的情况。这是最严重的损坏类型之一。

拉取请求
一种基本的 Git 协作开发操作,开发人员请求将他们的更改合并到主代码中。

变基(git 变基)
将一系列更改重新排序(提交)到不同起点的操作,从而对齐历史记录。该处理路径中存在最新的漏洞。

开放注册
允许任何人无需管理员批准即可创建帐户的设置。它在 Gogs 中默认启用,并且成为扩大攻击入口点的一个因素。

CVSS
一个国际评估指数,以0到10的等级表示漏洞的严重程度。本次最新的CVSSv4评级为9.4(严重)。

供应链攻击
一种潜入产品或代码供应链并将欺诈注入合法分发的攻击方法。威胁在于篡改将蔓延到所有下游用户。

KEV目录
由美国 CISA 管理的“已确认被利用的漏洞”列表。一旦发布,美国联邦机构必须在最后期限内做出回应。

[参考链接]

戈格斯(官方网站)(外部)
Go语言制作的自托管Git服务官网。根据 MIT 许可开源。

Rapid7(官方网站)(外部)
发现并公布该漏洞的美国安全公司官方网站。

Rapid7漏洞通报(主要信息)(外部)
主要信息由发现者伯吉斯提供。它详细介绍了技术细节和具体缓解措施。

CISA(网络安全和基础设施安全局)(外部)
美国政府机构。负责管理 KEV 目录并指导联邦机构。

影子服务器基金会(外部)
一个非营利性监控组织,负责观察和跟​​踪在线威胁和公共服务器。

绍丹(外部)
一个搜索引擎,可让您搜索连接互联网的设备和服务。它被用于本案的调查。

Metasploit(官方网站)(外部)
Rapid7开发的典型渗透测试框架。

维兹(官方网站)(外部)
云安全公司。发现并报告前兆漏洞CVE-2025-8110。

[参考文章]

通过Gogs中的参数注入验证RCE(未修复)(Rapid7)(外部)
主要信息。它详细说明了 CVSSv4 9.4 和 Merge() 函数是原因,并提供了具体的缓解措施。

开源 Git 服务 Gogs 中的严重 RCE 错误尚未修复(The Register)(外部)
据悉,Metasploit模块发布后,维护者保持沉默,并且没有任何滥用的迹象。

Gogs 零日 RCE (CVE-2025-8110) 被积极利用(Wiz 博客)(外部)
有关前述漏洞 CVE-2025-8110 的主要信息。 1 月下旬 v0.13.4 中的修复详细信息如下所示。

CISA对Gogs漏洞的主动利用发出警告(黑客新闻)(外部)
它报告了为 CVE-2025-8110 添加了 KEV,并且当时未提供补丁的事实。

严重的 Gogs RCE 漏洞可让任何经过身份验证的用户执行代码(黑客新闻)(外部)
CVSS9.4/CVE未分配,估计组织了1,141个公共实例等。

新Gogs 0-Day漏洞可让攻击者执行恶意代码(网络安全新闻)(外部)
它具体总结了 GitHub 的受欢迎程度(大约有 50,000 个 star),以及它被成功利用时造成的损害。

[相关文章]

Gogs安全漏洞暴露,源代码被盗警告
报告本文中提到的过去参数注入 (CVE-2024-39930~39933) 的同一产品的必备文章。

Linux 对人工智能生成的错误报告感到困惑 - Torvalds 谈论“难以管理”的现实和新规则
一篇文章讨论了处理漏洞的人力有限的开源公司所面临的结构性问题。

Cursor 2.5以下版本任意代码执行漏洞,随意的Git操作可作为切入点
一个漏洞示例,具有类似的攻击路径,称为 RCE,源自 Git 操作。

GUARDIANWALL MailSuite 中的紧急漏洞,已确认利用 - CVSS 9.8 免身份验证 RCE
从应对高度严重的 RCE 漏洞的紧迫性的角度来看,本文具有相关性。

Go语言恶意软件:发现高级供应链攻击破坏Linux环境
一篇相关文章深入研究了本文中讨论的供应链攻击的风险。

[编者后记]

安全新闻往往充斥着“危险”和“快点”等词语。然而,在这种情况下,我们想要暂停的也许是名为 Gogs 的小而自豪的项目,它在人力资源有限的情况下多次面对自己的代码。漏洞不是故障,而是软件仍然存在并正在使用的证明。这就是为什么我们需要弄清楚如何在报告者、试图修复问题的人和继续使用它的人之间分担责任。随着我们进入一个越来越依赖“内部技术”的时代,这个问题肯定会悄悄地变得越来越重要。您如何看待在工作场所划定这条界限?