2018 年 7 月 31 日,一名安全研究员发现 Homebrew 的 Jenkins 中泄露了一个最近提升了范围的 GitHub 个人访问令牌,该令牌使他们能够访问 Homebrew/brew 和 Homebrew/homebrew-core 上的 git push。他们向我们的 Hacker One 报告了此事。在几个小时内,凭证已在 Jenkins 中被撤销、替换和清理,以便将来不会泄露。Homebrew/brew 和 Homebrew/homebrew-core 已更新,因此这些存储库上的非管理员无法直接推送到 master。Homebrew 组织中的大多数存储库(尤其是 Homebrew/homebrew-core,因为它们当前的工作流和维护者请求)也已更新,要求在将更改推送到 master 之前,需要通过来自拉取请求的 CI 检查。

受到影响的内容

已联系 GitHub 支持,他们已验证在提升范围期间,相关令牌尚未用于对 Homebrew/brew 或 Homebrew/homebrew-core 执行任何推送。明确地说:没有软件包遭到破坏,并且由于此事件,用户无需采取任何措施。

我们正在采取的措施

  • 多年来,我们已为整个 Homebrew GitHub 组织启用了 2FA 和第三方应用程序限制。安全研究员也建议这样做。
  • 我们启用了分支保护,并要求对上述其他存储库进行审查。
  • 我们要求所有 Homebrew 维护者审查并整理他们的个人访问令牌,并为 2FA 禁用短信回退。
  • 安全研究员还建议我们考虑对 Homebrew/homebrew-core 使用 GPG 签名。Homebrew 项目领导委员会对此进行了投票,由于工作流问题,该提案未获得一致通过。

我们确实、正在并且将继续非常重视项目和我们用户的安全性。我们尽最大努力按照营利性公司的方式对安全问题进行及时响应,但我们的资源匮乏严重限制了这一点。例如,在此事件中,解决上述问题的 Homebrew 维护者正在休陪产假,并且是孩子的主要照顾者,并且必须在孩子午睡时快速解决问题。

我们需要更多帮助来提高 Homebrew 的安全性。请考虑将你的代码和代码审查贡献给我们的 GitHub 项目,联系我们自愿值班处理安全和/或系统管理紧急情况,或 通过 Patreon 捐款

感谢使用 Homebrew!