Rapid7 发现 Gogs Git 服务严重漏洞数月未修复引安全担忧在 Rapid7 发现 Gogs Git 服务的漏洞两个月后项目维护者仍未修复该漏洞。开源 Gogs Git 服务中一个新发现且至今未修复的严重漏洞不仅要求开发者立即采取行动保护代码安全也让人们关注到使用小型维护者提供的自托管代码平台可能存在的问题。这个漏洞是一个严重的参数注入漏洞由 Rapid7 的一名研究人员发现。该漏洞允许任何经过身份验证的用户在合并操作期间通过创建一个带有恶意分支名称的拉取请求在 Gogs 服务器上远程执行代码。今日Rapid7 发布了对该漏洞的分析报告。早在两个多月前Rapid7 首次报告此漏洞后Gogs 维护者未对状态更新请求做出回应也未接受推迟披露的提议。Rapid7 的安全研究员 Ryan Emmons 在一封邮件中表示“这是一款通常不向公共互联网开放的软件中的严重漏洞。Gogs 一般用于内部环境最可能的威胁场景是攻击者已经进入内部网络环境利用此漏洞获取 Gogs 服务器上源代码仓库的读写权限。攻击者可能会利用这种访问权限悄悄篡改源代码窃取敏感信息如用户密码哈希值和专有软件。”需要迅速采取防御措施安全意识提供商 Beauceron Security 的负责人 David Shipley 表示Gogs 维护者和开发者必须迅速采取防御行动。因为随着漏洞信息的公布“任何原本不知道这个漏洞的攻击者都会疯狂利用它”。他补充说截至周四下午该漏洞数月未修复这也是首席安全官CSO和开发者更倾向于使用 GitHub 的原因之一。对于任何开源项目人们都会担心是否会以及何时发布补丁。Rapid7 在报告中指出“该漏洞利用无需管理员权限也无需与其他用户交互。攻击者完全在自己的账户内操作。由于 Gogs 默认开启开放注册DISABLE_REGISTRATION false且对仓库创建数量没有限制MAX_CREATION_LIMIT -1未经过身份验证的攻击者可以在任何默认配置的实例上轻松创建账户和仓库。任何创建仓库的注册用户都会自动成为仓库所有者。从这里开始只需在设置中简单切换一下就能启用变基合并整个漏洞利用链可以在无需其他用户交互的情况下完成。”此外任何对已启用变基功能的仓库有写入权限的用户都可以直接利用该漏洞。在限制仓库创建的实例上攻击者仍然只需要对任何已启用或可以启用变基合并的仓库拥有写入权限即可。如果该漏洞被利用不仅可能导致 Gogs 服务器被攻破还可能引发跨租户数据泄露、凭证盗窃、在 IT 网络中横向移动以及通过受影响的 Gogs 平台上开发的代码进行软件供应链攻击。Emmons 表示在发布补丁之前使用该平台的组织中的开发者和 CSO 应严格限制对 Gogs 的网络访问确保只有有需求的人员能够使用该应用程序。此外如果用户自助注册功能尚未禁用应该立即禁用只有管理员才能创建新用户账户。Gogs 的优缺点Rapid7 将 Gogs 描述为一个轻量级的自托管 Git 服务用 Go 语言编写可以在 Go 工具链支持的任何平台上运行包括 Linux、macOS 和 Windows以及基于 ARM 的系统。Rapid7 称它是微软旗下 GitHub 的一个比较受欢迎的自托管替代方案常用于公司、大学和开源项目。其他面向开发者的自托管 Git 服务还包括 GitLab 社区版、Gitea、ForgejoGitea 的一个分支和 Atlassian 的 Bitbucket Data Center。本月早些时候自称是自托管工具精选目录、可替代付费软件的 Open Source Alternatives 在一篇博客中指出开发者可能选择自托管 Git 服务器以避免 GitHub 故障理由是“当 GitHub 宕机时你的仓库仍能在线你也无需支付 GitHub Actions 的使用费用而且你的源代码永远不会离开自己的服务器”。Emmons 表示Gogs 受欢迎是因为它是一个轻量级且独立的 Git 解决方案。他说与许多需要大量运维和 IT 管理的其他 Git 服务器不同Gogs 易于部署和运行。它也是一款本地自托管软件对于因各种原因不能或不想将源代码存储在云端的团队来说是理想之选。Emmons 认为Gogs 的主要优点在于从操作简单性的角度来看它是一个有吸引力的解决方案。它能很好地完成其功能而且不需要太多管理工作就能保持正常运行。但他补充说“一个主要的缺点就是我们在这次漏洞披露中看到的情况Gogs 是由一些热心人士在业余时间维护的开源软件其背后的开发者没有大型企业信息安全团队的支持。这意味着安全问题有时会以一种在资金充足的企业产品中通常不会出现的方式出现。”