Google’s Gerrit Code Platform Vulnerability Allows Hack of 18 Google Projects Including ChromiumOS
2025/06/17 CyberSecurityNews — 新たに発見された脆弱性 CVE-2025-1568 は、深刻なサプライチェーン攻撃を引き起こすものであり、GerriScary と命名されている。この脆弱性の悪用に成功した攻撃者は、ChromiumOS/Chromium/Dart/Bazel などを含む、少なくとも 18種類の Google プロジェクトへの、悪意のコード注入の可能性を得る。この脆弱性を悪用する攻撃者は、Google が使用するコード・コラボレーション・プラットフォーム Gerrit のミスコンフィグを突き、信頼されたソフトウェア・リポジトリを不正に操作することで、高度な攻撃チェーンを成立させるという。この脆弱性を発見したのは、Tenable のセキュリティ研究者 Liv Matan である。

脆弱性 CVE-2025-1568 を悪用する攻撃者は、相互接続される3つのコンポーネントの組み合わせにより、不正なコードの送信を達成する:
- Gerrit のデフォルト・コンフィグでは、Google アカウントを持つ全ての登録ユーザーに addPatchSet 権限が与えられているため、誰もが既存のコードを変更できてしまう。
- 以前のコード・レビューにおける承認ラベルの、新しいリビジョンへの引き継ぎを設定する Copy Conditions の欠陥により、古い承認が不正なコードにも適用されてしまう。
最も危険なのは、自動マージボットとの競合状態を悪用する攻撃である。 ”Commit-Queue +2” というラベルがついた、つまり、自動マージの準備が整ったコード変更を特定する攻撃者は、ボットが実行される前の僅かな隙間を突いて、悪意のコード注入を可能にする。

ChromiumOS/Dart リポジトリでは、このタイミングが約5分間に及ぶが、それ以外のリポジトリでは、数秒〜数分という短い時間だったという。
Google プロジェクト 18種類のハッキングを可能にする GerriScary
Liv Matan が分析したのは、コミット・メッセージを編集の際に返される、HTTP ステータス・コードであり、それにより、脆弱なプロジェクトを特定できることが判明した。 ”209” ステータス・コードは、プロジェクト・ログにノイズを残さすに、必要な権限が存在することを示すものだ。この技術により、Google の Gerrit インフラを大規模にスキャンし、影響を受けるリポジトリを特定することが可能になった。
この攻撃チェーンは、要件を満たすサブミットからのコード変更を監視し、自動ボットによるサブミット・プロセスを競合させる仕組みを持つ。
“Commit-Queue +2” とラベル付けされた変更が、悪意のコードにより検出されると、以前の承認をすべて保持したまま悪意のパッチを注入した。これは、Copy Conditions の誤設定によって可能になり、ユーザーの操作なしに不正なコードがマージされる結果となった。
“Commit-Queue +2” とラベル付けされた変更が、悪意のコードにより検出されると、Copy Conditions のミスコンフィグにより保持される、すべての承認を持つ悪意のパッチが注入される。その結果として、ユーザー操作を必要とすることなく、不正なコードがマージされていく。
この脆弱性は、複数の分野にまたがる Google の重要プロジェクトに影響を与えた。その中でも、特に深刻だったのが、Chrome OS の基盤となる ChromiumOS だ。
その他の影響を受けたプロジェクトに含まれるのは、Dart (Flutter のプログラミング言語)/Dawn および BoringSSL (Chromium のサードパーティ依存関係)/Bazel (Google のビルド・システム) と、Gerrit プロジェクト自体である。さらに、Ceres Solver/Quiche/Android KVM や、さまざまな Linux 関連プロジェクトも、脆弱なリポジトリとして挙げられている。
Liv Matan が実証したのは、ChromiumOS プロジェクトに無害なコメントを注入し、ChromiumOS コード検索ツールで確認した、この脆弱性の影響である。倫理的な研究基準を維持するため、本番環境でのテストは回避されたという。

この脆弱性の報告を受けた Google は、複数の是正措置を実施し、この問題に迅速に対処した。同社によると、影響を受けたプロジェクト全体で、ラベルの永続化設定を再コンフィグし、新しいパッチ・セットでは、新たなコード・レビューと検証が必須となるように変更したという。
さらに、ChromiumOS チームは、addPatchSet 権限を登録ユーザーから削除し、信頼されたコントリビューターに対してのみ、その機能を提供するよう限定したという。
Google においては、同社の管理下にあるプロジェクトのセキュリティは確保されたが、Gerrit を利用している他の組織では、同様の攻撃に対して脆弱な状態を引きずっている可能性があると、研究者たちは警告している。
Copy Conditions を正しくコンフィグすることは、きわめて難しいとされる。したがって、 Gerrit 全体にミスコンフィグが遍在している恐れがあり、無数のオープンソースや企業のプロジェクトが、サプライチェーン攻撃に直面している可能性があると、研究者たちは指摘している。
“GerriScary” という名前が付けられた 脆弱性 CVE-2025-1568 は、Gerrit のミスコンフィグを突くという、新たなサプライチェーン攻撃の実例という感じですね。特に興味深かったのは、自動マージの僅かな隙を狙うタイミング攻撃です。Google 社内のプロジェクトでは、すでに問題が解決されたとのことですが、その他の組織での対応は、これからになるはずです。ご利用のチームは、ご注意ください。よろしければ、カテゴリ MisConfiguration も、ご参照ください。
You must be logged in to post a comment.