我发现了 GitLab 的一个 RCE 漏洞,获得奖金2万美元
程序员兼漏洞猎人 Wiliam “vakzz” Bowling 在 GitLab 平台上发现了一个严重的远程代码执行漏洞,获得了2万美元的奖金。
4月23日,Bowling 在 HackerOne 漏洞奖励平台上披露了这个漏洞。Bowling 指出,GitLab 用于复制文件的 UploadRewriter 函数是产生该严重问题的源头。
在项目中复制问题 (issue) 时,该函数应检查文件名称和路径。然而,并不存在这种验证检查,从而导致产生可被用于复制任何文件的路径遍历问题。Bowling 指出,如遭利用,该漏洞可被武器化以“读取服务器上的任意文件,包括令牌;非公开数据以及配置信息。”
受该漏洞影响的是 GitLab 实例和 GitLab.com 域名,GitLab 因此在 HackerOne 平台上给出“严重”等级的评估。就在漏洞披露的当天,GitLab 安全团队在解决这个问题的同时决定为 Bowling 颁发1000美元。在解决过程中,Bowling 补充表示,利用任意文件读取 bug 从 GitLab secret_key_base 服务中抓取信息,可导致该问题转变为一个远程代码执行问题。如攻击者将自己的实例 secret_key_base 更改以匹配某个项目,则可操纵 cookie 服务触发 RCE。
GitLab 工程团队复现了该问题。虽然团队注意到攻击者至少得成为项目成员才能利用该漏洞,但GitLab 的一名资深工程师 Heinrich Lee Yu 表示,他们也可仅通过“创建自己的项目/分组的方式实现这个目标”。
该漏洞已在 GitLab 版本12.91 中解决,Bowling 在3月27日获得全部奖励金,而公开报告发布在4月27日。
四个月之前,Bowling 在 GitLab Search API 中发现了一个 bug,可导致将额外的标记注入 git 命令中,有可能导致构造密钥的创建、远程访问和代码执行。GitLab 证实了该问题的存在并颁发1.2万美元的奖励金。
GitLab 安全副总裁 Johnathan Hunt 指出,“非常感谢通过我们的漏洞奖励平台披露漏洞的安全报告提交者们如 vakzz。GitLab 安全团队收到报告后快速修复了该漏洞并在补丁发布30天后将其公开。”
https://www.zdnet.com/article/gitlab-awards-researcher-20000-patches-remote-code-execution-bug/
题图:Pixabay License
本文由奇安信代码卫士编译,不代表奇安信观点。转载请注明“转自奇安信代码卫士 www.codesafe.cn”。
奇安信代码卫士 (codesafe)
国内首个专注于软件开发安全的
产品线。