Gogs零日漏洞深度分析(CVE-2025-8110):超700台服务器已被攻陷

admin 2025-12-22 04:12:45 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: WizResearch发现Gogs自托管Git服务的零日漏洞CVE-2025-8110,这是对先前已修复CVE-2024-55947的符号链接绕过,允许攻击者覆盖仓库外任意文件实现RCE。全球超过700台服务器已被攻陷,占公开暴露实例50%以上,攻击者使用SupershellC2框架。尽管已向维护者报告,但截至2025年12月10日漏洞仍未修复。建议立即禁用开放注册功能,限制互联网暴露,并监控异常API调用和随机仓库名称。 综合评分: 85 文章分类: 漏洞分析,WEB安全,威胁情报,漏洞预警,应急响应


cover_image

Gogs 零日漏洞深度分析(CVE-2025-8110):超700台服务器已被攻陷

Wiz Research

赛博知识驿站

2025年12月16日 16:00 英国

要点速览

Wiz Research 在调查客户恶意软件感染时,意外发现流行自托管 Git 服务 Gogs 的零日漏洞 CVE-2025-8110,该漏洞是此前已修复的 RCE 漏洞 CVE-2024-55947 的符号链接绕过版本。

漏洞核心机制

  • • 攻击者通过在 Git 仓库中提交指向敏感目标的符号链接,利用 PutContents API 写入数据时系统会跟随符号链接,从而覆盖仓库外的任意文件
  • • 典型攻击链:创建仓库 → 提交恶意符号链接 → 通过 API 覆盖 .git/config 中的 sshCommand → 实现远程代码执行(RCE)
  • • 漏洞源于 Gogs 虽然验证路径名称,但未验证符号链接的目标位置

攻击规模惊人

  • • 全球超过 1,400 个公网暴露的 Gogs 实例,其中 700+ 已被攻陷(感染率超 50%)
  • • 所有被感染实例均显示在 2025 年 7 月 10 日创建了 8 位随机字符的仓库名称,表明单一攻击者或团伙使用相同工具
  • • 默认启用的”开放注册”功能极大扩展了攻击面

恶意载荷分析

  • • 攻击者部署的恶意软件使用 UPX 打包 + garble 混淆(Go 语言),通过 Mandiant 的 ungarbler 工具提取字符串后确认为 Supershell C2 框架
  • • C2 服务器地址:119.45.176[.]196
  • • Supershell 通过反向 SSH shell 与 Web 服务通信,曾被用于利用 F5 BIG-IP 设备的 CVE-2023-46747 漏洞

时间线与修复状态

  • • 2025 年 7 月 10 日:首次观察到在野利用
  • • 2025 年 7 月 17 日:向 Gogs 维护者负责任披露
  • • 2025 年 12 月 10 日漏洞仍未修复,主动利用持续中

缓解措施

  1. 1. 如非必要,立即禁用开放注册(默认启用)
  2. 2. 限制互联网暴露,使用 VPN 或 IP 白名单
  3. 3. 监控 8 位随机字符仓库名称的创建或 PutContents API 的异常调用

IoC 指标

  • • 恶意软件 SHA-1: d8fcd57a71f9f6e55b063939dc7c1523660b7383efda81e1100ea977321d0f2eeb0dfa7a6b132abd
  • • C2/载荷服务器: 119.45.176[.]196106.53.108[.]81119.91.42[.]53

Gogs 零日漏洞深度分析:超700台服务器已被攻陷

Gogs 简介

Gogs[1] 是一款使用 Go 语言编写的流行自托管 Git 服务。它为 GitLab 或 GitHub Enterprise 提供了轻量级替代方案,因其易于部署和资源占用少而深受开发者欢迎。由于采用自托管方式,Gogs 经常出现在本地和云环境中,且为支持远程协作常常暴露在互联网上。

Gogs 的广泛使用使其成为重要的攻击目标。我们的外部扫描发现,互联网上有超过 1,400 台 Gogs 服务器公开暴露。这些实例中许多默认启用了”开放注册”功能,为下文描述的漏洞创造了巨大的攻击面。

CVE-2025-8110 技术解析

CVE-2025-8110 本质上是对早期 RCE 漏洞(CVE-2024-55947[2])的绕过,该漏洞最初由 ManassehZhou[3] 发现。

漏洞历史回顾(CVE-2024-55947)

此前的漏洞利用了 PutContents API 中的路径遍历弱点。攻击者可以在 git 仓库目录外写入文件,从而能够覆盖敏感系统文件或配置文件以实现代码执行。维护者通过对路径参数添加输入验证来修复该问题。

路径验证修复代码示例

绕过手法(CVE-2025-8110)

遗憾的是,针对前一个 CVE 的修复方案没有考虑符号链接的情况。

这个新的绕过漏洞依赖于两个关键事实:

  1. 1. Git(以及 Gogs)允许在 git 仓库中使用符号链接,且这些符号链接可以指向仓库外部的对象
  2. 2. Gogs API 允许在常规 git 协议之外修改文件,其先前的实现未能正确检查符号链接滥用

虽然 Gogs API 现在会验证路径名称,但它未能验证符号链接的目标位置。由于 Gogs 遵循标准的 Git 行为,允许用户向仓库提交符号链接,漏洞由此产生——API 在写入文件路径时不检查目标文件是否实际上是指向仓库外的符号链接。如果涉及符号链接,这实际上使之前的路径验证失效。

攻击链分析

对于任何拥有仓库创建权限的用户(默认启用),利用过程极其简单:

  1. 1. 攻击者创建一个标准 git 仓库
  2. 2. 提交一个指向敏感目标的符号链接
  3. 3. 使用 PutContents API 向该符号链接写入数据。系统会跟随链接并覆盖仓库外的目标文件
  4. 4. 通过覆盖 .git/config(特别是 sshCommand 配置),攻击者可以强制系统执行任意命令

攻击流程示意图

这延续了 Gogs 中一个令人担忧的模式(参见 CVE-2024-56731[4]、CVE-2024-54148[5]),符号链接处理被反复利用来修改内部文件。

野外利用证据

我们的调查始于客户云工作负载上的单个恶意软件感染事件。

我们在受感染主机上发现了一个公开暴露的 Gogs 服务(版本 0.13.2)。该版本理应对 CVE-2024-55947 免疫。然而,Web 界面显示:

  • • 几个可疑仓库恰好在五天前创建
  • • 时间戳与恶意软件感染时间吻合
  • • 仓库名称由 8 个随机字符组成

值得注意的是,虽然这些痕迹对于攻击是必要的,但更老练的攻击者本可以将这些仓库标记为私有或在利用后立即删除。这些痕迹的可见性表明这是一场自动化的”快速突破”式攻击活动。

可疑仓库列表

仓库详情页面

符号链接文件

大规模入侵态势

通过 Shodan 扩大搜索范围,审查前述所有暴露实例后,我们发现:

  • • 约 1,400 个暴露实例
  • • 超过 700 个已确认被入侵的实例

换句话说,我们观察到的暴露实例中超过 50% 显示出入侵迹象。所有被感染实例都呈现相同模式:8 字符随机所有者/仓库名称,创建于同一短时间窗口(7 月 10 日)。这表明单个行为者,或可能是使用相同工具的一组行为者,对所有感染负责。

全球受影响实例分布

入侵时间线统计

恶意软件深度剖析

如前所述,本次调查始于单个恶意软件感染,我们随后在多个被入侵服务器上发现了完全相同的恶意软件,再次证实我们的假设——该漏洞正被单个行为者利用。

该载荷具有多层混淆设计以规避检测:

首先是简单的 UPX 加壳:

UPX 加壳特征

在 UPX 加壳下,我们发现恶意软件使用 Go 语言编写,并用 garble[6] 工具编译。这意味着所有类名都被随机化,大多数字符串字面量在磁盘上加密,仅在运行时解密,严重限制了对文件的静态分析。

Garble 混淆代码

随后我们使用了 Mandiant 出色的 ungarbler[7] 工具,该工具可从 garbled 二进制文件中提取所有字符串字面量,揭示了多个指示性字符串,使我们能够精确定位恶意软件源自的库。

提取的字符串特征

这些独特字符串引导我们发现载荷是使用 Supershell[8] 框架创建的。

Supershell 是一个开源命令与控制(C2)平台,其主要功能是建立通过 Web 服务通信的反向 SSH shell。该机制授予攻击者远程控制权和在受感染系统上执行任意代码的能力。尽管 Supershell 并不广为人知或商业流行,但已在威胁行为者的活动中被观察到,他们在利用初始访问漏洞后利用它,例如 F5 BIG-IP 设备中的 CVE-2023-46747[9]。

从 Supershell 载荷中,我们还能够提取攻击组的 C2 服务器地址:

119.45.176[.]196

C2 服务器配置信息

披露时间线

该漏洞的补丁状态至关重要。尽管进行了负责任的披露,但截至本文撰写时,主分支中的漏洞仍未修复。

  • • 2025 年 7 月 10 日: Wiz 观察到首次利用迹象
  • • 2025 年 7 月 15 日: 在易受攻击机器上发现 Supershell 恶意软件
  • • 2025 年 7 月 17 日: 向 Gogs 维护者报告漏洞
  • • 2025 年 10 月 30 日: Gogs 维护者确认漏洞
  • • 2025 年 11 月 1 日: 野外观察到第二波攻击
  • • 2025 年 12 月 10 日:漏洞尚未修复

修复与缓解措施

如何判断是否易受攻击?

如果您运行的 Gogs 服务器(版本 <= 0.13.3)满足以下条件:

  1. 1. 暴露在互联网上
  2. 2. 已启用开放注册(默认设置)

那么您就容易受到 CVE-2025-8110 的攻击。

立即采取的行动:

  1. 1. 如果您的实例不需要开放注册,请立即禁用此功能
  2. 2. 限制互联网暴露。将自托管 Git 服务置于 VPN 后或对 IP 地址使用白名单
  3. 3. 查找创建的具有随机 8 字符名称的仓库或 PutContents API 的异常使用情况

入侵指标(IoC)

| 指标 | 类型 | 描述 | | — | — | — | | d8fcd57a71f9f6e55b063939dc7c1523660b7383 | SHA-1 | 恶意软件 | | efda81e1100ea977321d0f2eeb0dfa7a6b132abd | SHA-1 | 恶意软件 | | 119.45.176[.]196 | IPv4 | Supershell C2 服务器 | | 106.53.108[.]81 | IPv4 | 载荷服务器 | | 119.91.42[.]53 | IPv4 | 载荷服务器 |


原文:https://www.wiz.io/blog/wiz-research-gogs-cve-2025-8110-rce-exploit

引用链接

[1] Gogs: https://github.com/gogs/gogs [2] CVE-2024-55947: https://www.wiz.io/vulnerability-database/cve/cve-2024-55947 [3] *ManassehZhou*: https://github.com/advisories/GHSA-qf5v-rp47-55gg [4] CVE-2024-56731: https://github.com/gogs/gogs/security/advisories/GHSA-wj44-9vcg-wjq7 [5] CVE-2024-54148: https://github.com/gogs/gogs/security/advisories/GHSA-r7j8-5h9c-f6fx [6] garble: https://github.com/burrowers/garble [7] ungarbler: https://github.com/mandiant/gostringungarbler [8] Supershell: https://github.com/tdragon6/Supershell [9] **F5 BIG-IP 设备中的 CVE-2023-46747**: https://cloud.google.com/blog/topics/threat-intelligence/initial-access-brokers-exploit-f5-screenconnect


查看原文:《Gogs 零日漏洞深度分析(CVE-2025-8110):超700台服务器已被攻陷》

评论:0   参与:  2