综合 Homebrew 7.0.0 发了 8 条安全公告:brew vulns 上线,install hooks 开始去 Ruby 化

2026-09-17 21:04:43

Homebrew 7.0.0 发了 8 条安全公告:brew vulns 上线,install hooks 开始去 Ruby 化

Homebrew 7.0.0 于 2026-09-13 发布。发布说明:,仓库:。

同日的 7.0.1 是补丁版本,修了两处:错误地作用于旧 macOS 的 Xcode 27 要求,以及升级时的元数据 bug。直接落到 7.0.1。

8 条安全公告:1 High、2 Moderate、5 Low

  • GHSA-rg9r-ppxp-87hm,High,6.0.12 修复:未签名的 cask-removal 元数据可以用 sudo 执行命令。所有脆弱的恢复代码和 API accessor 已删除。
  • GHSA-5263-whxq-77hp,Moderate,7.0.0 修复:恶意 cask 可通过 LaunchServices 在 macOS 安装沙箱之外执行代码。Homebrew 现在限制应用启动、Mach 服务与 Unix socket 连接。
  • GHSA-hqpg-hjr9-c7j8,Moderate,6.0.12 修复:macOS 安装器会读取属于 Homebrew 前缀的 Git 配置,可能以 root 执行程序。
  • GHSA-x82f-cj53-gqfr,Low,6.0.7brew livecheck 限制重定向以防 SSRF。
  • GHSA-3m5g-jfx7-3p65,Low,6.0.7:下载重定向不能把机密 header 转发给其他主机。
  • GHSA-r9gp-p4vv-f93x,Low,6.0.6:Git 重定向不能绕过 tap 限制。
  • GHSA-9g4r-vmj2-j2gj,Low,6.0.7:Subversion 外部 URL 不能变成命令选项。
  • GHSA-r7qx-325v-4ccx,Low,6.0.6:patch 目标不能逃出暂存源码树。

如果还停在 6.0.12 之前的 6.0.x,光是 High 那条就足够成为升级理由。

brew vulns:用 OSV.dev 扫已装 formula

新的漏洞扫描随本版本发布,检查已安装 formula 是否有已知漏洞,不需要额外 tap 或 gem。可用标志:

  • --severity=high
  • --deps,把依赖一并纳入
  • --brewfile,扫 Brewfile 而不是当前 prefix
  • --fix-available / --no-fix-available,按升级能否修复来分类

数据是 OSV 格式、CC0 许可,发布在 formula API 与可下载索引里,可以直接被自己的工具消费。

安装与 tap 防护能做到什么

tap 信任仍然是对抗恶意第三方 cask 的主要手段。沙箱主要限制意外损害、增加安装保障,不能把不可信软件变安全——应用以用户权限运行,厂商 .pkg 安装器在沙箱外运行且可能要 sudo

  • 结构化安装步骤作为签名数据下发,formula 与 cask 操作被沙箱化,减少任意 Ruby 执行与重复包加载。
  • 依赖下载迁移到独立的 fetch 阶段:迁移后的 formula 在有网络与可写缓存时下载,install 阶段关闭网络并把缓存设为只读。迁移仍在进行中。
  • 默认阻止沙箱读取 home 目录,把无关个人文件挡在构建之外,同时允许必要的 Homebrew 路径;私有临时目录让构建工具本地通信而不开网络。
  • 读取配置前拒绝 real/effective UID 不一致的情况,移除了不支持的共享安装的切换权限代码。

install hooks 去 Ruby 化

formula 的 post_install 块,cask 的 preflightpostflightuninstall_preflightuninstall_postflight 块已弃用,改为 post_install_steps 及对应的 *_steps 形式:来自固定列表的序列化、校验过的操作,取代能任意执行的 Ruby 块。

官方 tap 现在直接拒绝旧 hooks;第三方 tap 收到警告直到 2027-12-11,之后 hooks 不再运行。brew style --fix 可转换常见写法。

平台与支持变化

  • macOS Intel x86_64 降为 Tier 3(2026-09 生效):已构建的 bottle 仍可用,但 formula 更新后可能需要在本地编译。Homebrew 在 Intel 上可运行到 2027-09-01,但无项目支持、无常规 bottle 构建。建议这些用户换 MacPorts。
  • 7.0.0 移除 macOS 10.15 及更早;Sonoma 14 降为 Tier 3,无新 bottle。.pkg 安装器仅支持 Apple Silicon。
  • Linux 上用 Landlock 取代 6 月引入的 Bubblewrap:Landlock 是内核 LSM,无需 setuid helper 或用户命名空间,Docker 容器不必额外 capabilities。Homebrew 面向 Landlock ABI 2(Linux 6.1)。没有 Landlock 的内核继续以 6.0.0 之前的不安全配置运行,brew doctor 会报告该缺口。

升级与自查清单

  • brew update,确认落到 7.0.1。
  • CI 里 grep ubuntu22.04 镜像与 @master action ref。
  • 在每台有 prefix 的机器上跑 brew vulns --deps 存档,一周后对比。
  • 盘点手上的 Intel Mac。
  • 维护 tap 的跑 brew style --fix
复制全文 生成海报 Homebrew macOS 运维安全 Linux

推荐文章

程序员茄子在线接单