Homebrewバージョン7.0.0がリリース、セキュリティ面での変更点

Homebrewは、macOSやLinuxのターミナルからコマンドラインソフトウェアやデスクトップアプリケーションをインストールするツールで、Mac開発者がマシンをセットアップする際に利用しています。日曜日、同プロジェクトはバージョン7.0.0をリリースし、8件のセキュリティ勧告に対応しました。中でも最も深刻だったのは、Homebrewがビルド済みアプリケーションをインストールする際のレシピであるcask(カスク)の削除用メタデータに署名がない場合、それを利用してsudoでコマンドを実行できてしまう脆弱性です。Homebrewはこの脆弱なリカバリコードと、それにアクセスするAPIアクセサを削除しました。

Image

8件の勧告のうち7件は6.0.x系のリリースで既に修正済みのため、自動更新を有効にしているマシンには既に適用されています。残る1件は7.0.0で対応されたもので、これがインストールされるまでは、悪意のあるcaskがLaunchServices経由でmacOSのインストールサンドボックスの外でコードを実行できる状態でした。

8件の勧告、うち1件は「高」評価

Homebrewは今回の8件の勧告のうち1件を「高(High)」、2件を「中(Moderate)」、5件を「低(Low)」と評価しています。「高」評価となったのは前述のsudo実行の脆弱性で、6.0.12で修正済みです。同じリリースで修正された「中」評価の1件は、macOSインストーラがHomebrewのプレフィックスが所有するGit設定を読み込んでしまい、root権限でプログラムを実行できてしまう問題でした。もう一つの「中」評価はLaunchServicesを介した脱出の脆弱性で、7.0.0ではアプリケーションの起動、Machサービス、およびUnixソケット接続を制限することで対応しています。

6.0.6と6.0.7で修正された「低」評価の5件は、リクエストやファイルパスが意図しない場所に到達してしまう問題群です。具体的には、リダイレクトによって秘密のヘッダーが別のホストに渡されたり、サーバーサイドリクエストフォージェリ(SSRF)に悪用されたりする可能性があった問題、パッケージ定義を提供するサードパーティ製リポジトリであるtap(タップ)に対する制限をGitのリダイレクトで回避できてしまう問題、SubversionのURLがコマンドオプションとして解釈されてしまう問題、そしてパッチがステージング済みのソースツリーの外側にファイルを書き込めてしまう問題です。

Homebrewがインストール済みパッケージを自ら脆弱性スキャン

今回のリリースではbrew vulnsコマンドが新たに導入されました。これはHomebrewがビルド元とするパッケージ定義であるインストール済みformula(フォーミュラ)を、オープンソースの脆弱性情報をまとめた公開データベースであるOSV.devと照合してチェックする機能で、追加のtapやgemを必要としません。--severity=high--deps--fix-availableといったフラグを使えば、チームが実際に対応すべき内容に出力を絞り込めます。

このコマンドの裏側には、バックポートされたセキュリティ修正も含め、Homebrewが実際に提供しているformulaのバージョンおよびリビジョンに対して脆弱性情報を記録する、新しい勧告データベースが存在します。この点は、セキュリティチームが対処する誤検知の数を左右する重要な要素です。というのも、Homebrewが上流のバージョン番号を変更せずにパッケージへセキュリティ修正を適用した場合、バージョン文字列だけを見るスキャナーでは、既に修正済みの脆弱性を検出済みとして誤って報告してしまうからです。これらの記録はOSV形式かつCC0ライセンスで提供されており、HomebrewはformulaのAPIおよびダウンロード可能なインデックスとして検出結果を公開しています。

来歴(provenance)の検証範囲も拡大されました。Homebrewは、これまで自社のcore tapのみを対象としていたビルド証明(build attestation)の検証を、対応するサードパーティ製tapのbottle(ビルド済みバイナリ)にも拡大しています。また、brew tap-newで新規作成されたtapは、デフォルトでこうした証明を公開するようになりました。

サンドボックスがカバーしない範囲

悪意のあるサードパーティ製caskに対する主な防御策は、依然としてtapへの信頼に基づくものです。Homebrew自身の言葉を借りれば、サンドボックス化は「信頼できないソフトウェアを安全に実行できるようにするものではない」とのことです。インストールされたアプリケーションはユーザーの権限で実行され、ベンダー提供の.pkgインストーラはサンドボックスの外で実行され、sudoを要求することもあります。

こうした限界がある一方で、7.0.0はインストール処理が実行できる範囲を狭めています。Homebrewはformulaおよびcaskの操作をサンドボックス化し、セットアップ手順を署名済みデータとして提供することで、インストール中に実行される任意のRubyコードを削減しました。従来のpost_installやcaskのフライトブロックは非推奨となり、宣言的なステップへの移行が進められています。公式tapでは既にこれらの旧方式を拒否しており、サードパーティ製tapでは2027年12月11日まで引き続き使用が可能です。また、ビルドはデフォルトではホームディレクトリを読み込まなくなりました。依存関係のダウンロードは別のフェッチフェーズへ移行が進められており、これが完了すれば、インストール処理はネットワークを無効化し、キャッシュを読み取り専用にした状態で実行されるようになります。ただし、この移行はまだ進行中です。

Linuxでは、6月に導入されたBubblewrapによるサンドボックス化に代わり、依存関係もDockerの権限昇格も不要なカーネル機能であるLandlockが採用されました。Landlockに対応していないカーネルでは、6.0.0以前と同じ、セキュリティ面で劣る構成のまま動作し続けることになり、brew doctorはこの状態をギャップとして勧告に表示します。

Intel搭載Macへの新規bottle提供が終了

Intel向けのビルドインフラが不安定になり、Intel版bottleの定期ビルドが行えなくなったことを受け、HomebrewはIntel x86_64をTier 3へと格下げしました。既にビルド済みのbottleは引き続き利用できますが、formulaが更新された場合はローカルでのコンパイルが必要になることがあり、Intelユーザーが新バージョンで提供される修正を入手する手段はこの方法に限られます。Homebrewは2027年9月1日までIntel環境でのサポートなしの動作を継続する予定で、該当ユーザーへの提案として、別のパッケージマネージャーであるMacPortsを挙げています。AppleはmacOS 27でIntelサポートを打ち切り、GitHubも2027年秋にIntel版macOSランナーを廃止する予定であり、Homebrewのボランティアたちにはそのどちらも代替する手段がありません。今回のリリースではさらに、macOS 10.15以前のサポートが削除され、Sonoma 14もTier 3に格下げされており、こちらも新規bottleの提供対象外となっています。

翻訳元: https://www.helpnetsecurity.com/2026/09/15/homebrew-7-0-0-security-open-source/

本記事は helpnetsecurity.com の記事を翻訳・要約したものです。