漏洞概述 漏洞名称: Migration Redirect Bypass Leads to Internal Repository Theft 漏洞描述: 在Gogs的仓库迁移功能中存在一个服务器端请求伪造(SSRF)漏洞。该漏洞允许攻击者通过HTTP重定向绕过对内部端点的访问限制,从而窃取内部仓库的内容。 影响范围 受影响版本: < 0.14.3 修复版本: 0.14.3 CVSS评分: 8.7 / 10 攻击向量: 网络 攻击复杂度: 低 所需权限: 低 用户交互: 需要 影响范围: 已改变 机密性: 高 完整性: 高 可用性: 无 修复方案 修复版本: 升级到0.14.3或更高版本 漏洞细节 1. 漏洞位置: 中的 函数验证克隆地址主机名时,仅检查本地和私有网络地址。 2. 漏洞利用: - 攻击者提交一个看似合法的URL,该URL会重定向到内部Git端点。 - Gogs服务器响应302重定向,将请求重定向到内部端点。 - Gogs跟随重定向并克隆内部仓库。 - Gogs将克隆的内容导入到攻击者的新仓库中。 影响 任何能够迁移仓库的已认证用户都可以从内部Git端点导入内容,导致: - 窃取内部仓库的源代码和秘密。 - 通过迁移漏洞扫描内部网络服务。 复现步骤 1. 前提条件: 需要Gogs实例和具有创建仓库权限的攻击者账户。 2. 步骤: - 启动一个本地HTTP Git服务器,并在 上托管测试仓库。 - 启动一个重定向服务器,将任何请求重定向到 。 - 验证直接本地URL被阻止。 结果:被阻止的本地地址。 3. 提交一个看似合法的URL,该URL重定向到内部端点: 结果:迁移成功。新仓库包含内部仓库的内容。 总结 该漏洞允许攻击者通过HTTP重定向绕过内部端点的访问限制,从而窃取内部仓库的内容。建议升级到0.14.3或更高版本以修复此漏洞。