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.7:
brew 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 的 preflight、postflight、uninstall_preflight、uninstall_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镜像与@masteraction ref。 - 在每台有 prefix 的机器上跑
brew vulns --deps存档,一周后对比。 - 盘点手上的 Intel Mac。
- 维护 tap 的跑
brew style --fix。