Skip to content

Back to the catalog

Homebrew 6.0.0 security update
brew.sharticle

Homebrew 6.0.0 security update

Homebrew 6.0.0 release notes introduce a tap trust mechanism that requires explicit trust before Homebrew will evaluate or run arbitrary Ruby code from third-party taps, mitigating malicious or compromised tap supply-chain risk while keeping official taps trusted by default. The release also brings Bubblewrap sandboxing to Linux matching macOS sandboxed build test and postinstall phases, download cooldowns for npm PyPI RubyGems and pip to blunt upstream supply-side attacks, filtering of sensitive environment variables during Ruby evaluation, a new brew vulns subcommand for checking installed packages against known vulnerabilities, and three unnamed published security advisories.

TL;DR Homebrew 6.0.0 adds a tap-trust security model, Linux sandboxing, dependency cooldowns, and other supply-chain hardening.
Document

What it is

Homebrew 6.0.0, the release introducing the "tap trust" security model. Beyond the mechanism the summary describes, the release notes carry concrete flags, environment variables, and behavior changes an operator needs before upgrading — plus one security default that regresses.

How it works

Tap trust requires third-party taps (and tap-qualified formulae/casks) to be explicitly trusted before their arbitrary, unsandboxed Ruby is evaluated. Official Homebrew taps stay trusted by default. Enforcement happens before code runs: untrusted taps are flagged, auto-tapping of untrusted taps stops, and allow/forbid/trust lists are pinned to remotes. Tap trust is applied when evaluating all formulae and casks, not just at install time.

Preconditions / Affected

  • Anyone scripting installs against third-party taps: auto-tapping of untrusted taps is now disabled, which will break unattended workflows that relied on it. Trust must be established first.
  • Linux users: build/test/postinstall now run under a Bubblewrap sandbox (on by default for developers), matching macOS.
  • Linux systems on glibc older than 2.39 (e.g. Ubuntu 22.04 / glibc 2.35) drop to Tier 2 — no new bottles, brew doctor warns.

What to do

Manage trust with the new brew tap trust subcommands; a tap can be trusted by its remote URL, brew trust supports --json=v1, and brew tap-info exposes a trusted field. For Brewfiles, trusted: is honored and brew bundle dump records trusted entries.

Require checksums for casks:

HOMEBREW_CASK_OPTS_REQUIRE_SHA

Note two environment-variable changes:

  • Sensitive HOMEBREW_* secrets are now filtered during Ruby evaluation and deferred to download time.
  • These are deprecated because their behavior is now default: HOMEBREW_BUNDLE_NO_SECRETS and HOMEBREW_USE_INTERNAL_API. Remove them from your environment.

Caveats

  • SBOM support is now opt-in via HOMEBREW_SBOM — if you relied on SBOM generation, it no longer happens unless you set this. This is a security-relevant regression the notes state plainly.
  • The page says three security advisories were published but does not reproduce their content, CVE ids, or affected versions here — you must open the linked advisories to assess them.
  • The Linux sandbox and ask-mode defaults are described as "on by default for developers"; the notes do not spell out the exact non-developer default behavior.

Technologies named here

  • Homebrew
  • macOS
  • Bubblewrap
  • macOS Intel x86_64
  • brew vulns
  • Linux
  • brew tap
  • brew trust
  • Homebrew/homebrew-core
  • brew tap-info
  • Homebrew/homebrew-cask
  • Casks failing macOS Gatekeeper checks
  • brew bundle
  • ghcr.io/homebrew/brew Docker image
  • setup-homebrew GitHub Action
  • brew doctor
  • npm
  • RubyGems
  • PyPI
  • pip
  • Cargo

Techniques named here

  • Tap trust
  • Sandboxing
  • Environment variable filtering
  • Forbidden checks before download
  • Checksum requirement for casks
  • Download cooldowns
  • Install steps framework
  • More secure npm installs