Gogs符号连接致代码执行漏洞(CVE-2025-8110)全面分析与防护指南

admin 2026-01-01 05:22:29 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: Gogs存在严重的符号链接代码执行漏洞CVE-2025-8110,攻击者利用PutContentsAPI绕过路径验证,实现任意文件覆盖和RCE。全球超50%暴露服务器已被入侵。建议立即禁用开放注册,限制网络访问,监控异常仓库,并等待官方补丁发布。 综合评分: 92 文章分类: 漏洞分析,漏洞POC,应急响应,WEB安全


cover_image

Gogs符号连接致代码执行漏洞(CVE-2025-8110)全面分析与防护指南

原创

信息安全新动态

信息安全新动态

2025年12月29日 09:01 江西

摘要

Gogs 作为一款流行的自托管 Git 服务,在 2025 年 12 月被披露存在严重的符号连接致代码执行漏洞(CVE-2025-8110)。该漏洞利用 Gogs 对符号链接处理的不当,允许攻击者通过PutContents API绕过先前修复的路径遍历漏洞(CVE-2024-55947),实现任意文件覆盖和远程代码执行。研究表明,全球超过 1400 台暴露在互联网上的 Gogs 服务器中,已有超过 700 台被入侵,入侵率超过 50%。本文将从漏洞原理、利用方法、防护措施等多个维度,为初级安全人员、开发人员、安全工程师和研究人员提供全面的技术分析和实践指导。

一、漏洞概述与影响范围

1. 漏洞基本信息

CVE-2025-8110 是 Gogs 在 2025 年 12 月被披露的一个严重级零日漏洞,由安全研究公司 Wiz 在调查客户服务器感染事件时发现。该漏洞被归类为 “文件更新 API 中的文件覆盖漏洞”,其CVSS v4.0 评分高达 8.7 分,属于高危漏洞。

漏洞的核心在于 Gogs 的 PutContents API 对符号链接处理不当,攻击者能够在 Git 仓库中创建指向外部敏感文件的符号链接,并通过 API 接口将数据写入这些文件。该漏洞的影响范围包括 Gogs 所有版本(0.0.0 到 0.13.3),涉及 Linux 和 Windows 平台。

2.受影响资产规模

根据 Wiz 的安全研究,全球暴露在互联网上的 Gogs 服务器约有1400 台,其中超过 700 台已被入侵,入侵率高达 50% 以上。这些被入侵的服务器具有以下特征:

● 都在2025 年 7 月 10 日同一时间段内创建了随机 8 字符名称的仓库。

● 显示出相同的攻击模式和入侵痕迹。

● 部署了基于SuperShell C2 框架的恶意软件。

3.漏洞发现时间线

该漏洞的发现和披露过程如下:

2025 年 7 月 10 日:Wiz 首次观察到漏洞利用迹象

2025 年 7 月 15 日:在受感染机器上发现 SuperShell 恶意软件

2025 年 7 月 17 日:向 Gogs 维护者报告漏洞

2025 年 10 月 30 日:Gogs 维护者确认漏洞存在

2025 年 11 月 1 日:观察到第二波攻击

2025 年 12 月 10 日:漏洞仍未修复,持续在野利用

截至 2025 年 12 月 11 日,该漏洞已被公开披露,但官方修复补丁仍未发布。

二、漏洞技术原理深度分析

1.漏洞根本原因

CVE-2025-8110 本质上是对CVE-2024-55947的绕过。Gogs 在修复 CVE-2024-55947 时,虽然添加了路径验证来防止目录遍历,但却忽略了对符号链接的验证。

该漏洞的根本原因在于:

● Git 允许符号链接:Git 和 Gogs 都允许在仓库中使用符号链接,这些链接可以指向仓库外部的文件或目录。

API 未验证符号链接目标:Gogs 的 PutContents API 在写入文件时,没有检查目标文件是否为指向仓库外部的符号链接。

● 路径验证绕过:虽然修复版本验证了路径名以防止目录遍历,但符号链接的使用使得这种验证失效。

2.攻击链分析

漏洞利用的攻击链包括以下步骤:

● 创建恶意仓库:攻击者创建一个标准的 Git 仓库。

● 提交符号链接:在仓库中提交一个指向敏感目标文件的符号链接

● 利用 API 写入:使用 PutContents API 向该符号链接写入数据,系统会跟随链接并覆盖仓库外的目标文件

● 执行恶意命令:通过覆盖.git/config 文件(特别是 sshCommand 配置),攻击者可以强制系统执行任意命令

3.漏洞触发条件

漏洞的触发需要满足以下条件:

● 攻击者权限:需要具有仓库创建权限(这是 Gogs 的默认设置)

API 访问:能够访问 Gogs 的PutContents API

服务器配置:Gogs 实例部署在 Linux 或 Windows 系统上

开放注册:通常需要启用开放注册功能(默认启用)

4.与历史漏洞的对比

Gogs 历史上存在多个类似的漏洞,CVE-2025-8110 与它们的对比如下:

CVE-2025-8110 的独特性在于它是一个 “漏洞绕过漏洞”,利用了 Gogs 在修复 CVE-2024-55947 时的不彻底性,通过符号链接技术绕过了已实施的路径验证机制。

三、漏洞利用技术详解

1.任意文件写入利用

攻击者可以通过创建符号链接并利用 PutContents API 实现任意文件写入。具体步骤如下:

● 创建符号链接:在本地创建一个指向目标文件的符号链接.

● 提交到仓库:将符号链接提交到 Gogs 仓库

● 调用 API 写入:使用 PutContents API 向符号链接写入数据:

其中,content字段是echo “Hacked” >> /etc/passwd的 base64 编码。

2.远程代码执行利用

攻击者通过覆盖.git/config文件中的sshCommand配置来实现远程代码执行。具体步骤如下:

● 创建指向.git/config 的符号链接

● 使用 API 写入恶意配置:

● 触发执行:当仓库所有者通过 SSH 协议执行 clone、pull 等操作时,恶意命令会被执行。

3.恶意软件部署分析

攻击者利用该漏洞部署的恶意软件具有以下特征:

使用 SuperShell 框架:这是一个开源的 C2 平台,主要功能是建立反向 SSH shell

多层混淆:

● 第一层:简单的 UPX 打包

● 第二层:使用 Go 语言编写,使用 garble 工具混淆

● 第三层:包含特定的字符串签名

C2 服务器:连接到119.45.176[.]196等 IP 地址

4.漏洞测试POC 代码

以下是漏洞测试 POC 代码作为参考帮助安全人员检测漏洞:

注意事项:

● 该POC需要在 Linux 环境下运行(因为 Windows 不支持 Linux 符号链接)。

● 需要先在 Gogs 上注册用户并获取访问令牌。

● 目标 Gogs 实例必须启用开放注册功能。

● 建议在测试环境中使用,避免造成实际损害。

四、不同受众的防护指南

1.初级安全人员防护指南

(1)快速识别与应急响应

作为初级安全人员,你需要掌握以下快速识别和应急措施:

识别方法:

● 检查是否存在随机 8 字符名称的仓库(这是入侵的典型特征)

● 查看/etc/passwd文件是否有异常用户添加

● 检查.git/config文件是否被修改,特别是sshCommand配置

● 监控 Gogs 的 API 日志,特别是PutContents API的异常调用

应急措施:

立即禁用开放注册:

● 进入 Gogs 管理界面

● 找到 “启用开放注册” 选项并取消勾选

● 保存配置并重启服务

限制网络访问:

● 将 Gogs 实例从公网移除,仅在内网使用

● 使用 VPN 或 IP 白名单限制访问

● 关闭不必要的端口

临时防护:

● 删除所有可疑的随机命名仓库

● 检查并恢复被修改的系统文件

● 监控系统日志,发现异常立即处理

(2)日常安全检查清单

每周进行一次安全检查:

✓ 检查是否有新增的可疑用户

✓ 检查系统文件的修改时间

✓ 审查 Gogs 的操作日志

✓ 检查 API 访问记录

✓ 确认开放注册状态

2.开发人员防护指南

(1)理解漏洞原理

作为开发人员,你需要深入理解漏洞的技术原理:

● 符号链接的危险性:符号链接是指向其他文件的 “快捷方式”,Gogs 在处理时没有验证其目标位置

● 路径验证的局限性:简单的路径过滤无法阻止符号链接攻击

● API 安全风险:直接使用文件系统函数(如os.WriteFile)可能导致任意文件写入

(2)安全编码实践

在开发类似功能时,应遵循以下安全编码规范:

验证符号链接:

路径规范化:

最小权限原则:

● 确保 Gogs 运行的用户具有最小权限

● 避免以 root 权限运行

● 使用 chroot 或容器技术限制文件系统访问

(3)代码审计要点

在审计代码时,应重点关注:

● 文件上传功能是否验证了文件类型

● API 接口是否有足够的输入验证

● 是否使用了os.WriteFile等危险函数

● 是否处理了符号链接的情况

3.安全工程师防护指南

(1)深度防御策略

作为安全工程师,你需要制定全面的防御策略:

技术防御措施:

网络隔离:

● 将 Gogs 部署在DMZ 区

● 使用 \ 网络访问控制列表(ACL)\ 限制访问

● 仅开放必要的端口(80、443、22)

主机加固:

● 禁用不必要的系统功能

● 启用 SELinux 或 AppArmor

● 限制 Gogs 用户的文件系统访问

应用层防护:

● 部署Web 应用防火墙(WAF)

● 监控 API 访问行为

● 实施速率限制防止暴力攻击

(2)入侵检测系统(IDS)规则

部署以下 IDS 规则来检测漏洞利用:

网络流量检测:

文件系统监控:

● 监控/etc/passwd、/etc/shadow等敏感文件的修改

● 检测.git/config文件的异常写入

● 使用Tripwire等工具进行文件完整性检查

API 行为分析:

● 统计 PutContents API 的调用频率

● 检测异常的文件路径(如包含/etc/、/var/等)

● 识别非标准的文件操作

(3)应急响应流程

制定详细的应急响应流程:

检测阶段:

● 每小时检查一次系统日志

● 使用ELK Stack进行日志分析

● 设置异常行为告警

隔离阶段:

● 立即断开被入侵服务器的网络连接

● 冻结可疑用户账户

● 保存现场证据(内存、磁盘等)

修复阶段:

● 清除恶意软件和后门

● 恢复被修改的系统文件

● 实施安全加固措施

验证阶段:

● 重新测试漏洞是否已修复

● 监控系统是否有异常行为

● 评估损失和影响

五、安全建议与最佳实践

1.临时缓解措施

由于官方修复补丁尚未发布,建议采取以下临时缓解措施:

立即禁用开放注册:

● 这是最有效的临时防护措施

● 阻止未授权用户创建仓库和上传符号链接

限制网络访问:

● 将 Gogs 实例迁移到内网环境

● 使用 VPN 或 SSH 隧道访问

● 配置防火墙规则,只允许特定 IP 访问

监控异常行为:

● 定期检查是否有随机 8 字符名称的仓库创建

● 监控 PutContents API 的调用日志

● 检查系统文件的完整性

账户管理:

● 删除不必要的用户账户

● 限制用户权限,只授予必要的访问权限

● 启用多因素认证(MFA)

2.永久修复方案

等待官方修复期间,可以考虑以下永久修复方案:

手动修复:

● 在internal/database/repo_editor.go中添加符号链接验证逻辑

● 对所有文件操作进行路径验证

● 确保不允许覆盖系统关键文件

升级到安全版本:

● 关注 Gogs 官方发布的安全更新

● 一旦修复补丁发布,立即升级

● 建议升级到 0.13.3 以上版本

架构改进:

● 使用容器化部署,限制文件系统访问

● 实施最小权限原则

● 部署入侵检测系统(IDS)

3.长期安全策略

安全配置基线:

● 制定 Gogs 安全配置标准

● 定期进行安全审计

● 建立变更管理流程

人员培训:

● 对所有使用 Gogs 的人员进行安全培训

● 提高员工的安全意识

● 建立安全事件报告机制

持续监控:

● 部署 \ 安全信息和事件管理(SIEM)\ 系统

● 实施行为分析技术

● 建立威胁情报收集机制

应急预案:

● 制定详细的安全事件响应预案

● 定期进行应急演练

● 建立与安全厂商的合作关系

六、总结

Gogs 符号连接致代码执行漏洞(CVE-2025-8110)是一个极其严重的安全漏洞,具有以下特点:

影响范围广:所有 Gogs 版本(0.0.0 到 0.13.3)都受影响,涉及 Linux 和 Windows 平台

利用难度低:攻击者仅需仓库创建权限即可利用

危害程度高:可实现任意文件覆盖和远程代码执行

在野利用活跃:已有超过 700 台服务器被入侵

随着云计算和 DevOps 的发展,自托管 Git 服务的安全问题将越来越受到关注。Gogs CVE-2025-8110 漏洞的出现,提醒我们需要:

提高安全意识:所有开发和运维人员都应该了解符号链接等基础安全概念

加强技术研究:深入研究各类漏洞的原理和利用方法,开发更有效的防护技术

建立安全生态:通过行业合作,建立完善的安全标准和最佳实践

Gogs 作为一款优秀的自托管 Git 服务,其安全问题需要整个社区共同关注和解决。只有通过持续的安全改进和技术创新,才能为用户提供更加安全可靠的服务。同时,这也提醒我们,在使用任何开源软件时都应该保持警惕,及时关注安全更新,确保系统的安全性。

参考资料

①https://ti.dbappsecurity.com.cn/info/13540

②https://www.venustech.com.cn/new_type/aqtg/20251211/29006.html

③https://app.opencve.io/cve/CVE-2025-8110

④https://forum.butian.net/share/4680

⑤https://seclists.org/oss-sec/2025/q4/262

⑥https://seclists.org/oss-sec/2025/q4/262

声明

转载声明:本平台部分公开资料源于互联网,转载是为传递信息和网络分享,不代表平台观点,也不保证真实性、不提供建议。除原创及特别说明外,推送内容来自网络和主流媒体,版权归原作者。若发现侵权,请联系我们,将尽快核实并删除。

网络安全,人人有责

信息安全新动态

微信号丨ThinventS2


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:信息安全新动态 信息安全新动态《Gogs符号连接致代码执行漏洞(CVE-2025-8110)全面分析与防护指南》

评论:0   参与:  0