BuildPiperの脆弱性3件、修正版2.7.0あり・攻撃資料公開
CI/CDとデプロイを担うBuildPiperの2.7.0未満に、Kubernetesクラスター全体の乗っ取りやアカウント奪取につながる脆弱性が3件あります。使っている組織は2.7.0へ更新し、権限の付与状況も見直してください。
同じ発表の脆弱性 3 件
この記事でまとめた分です。発表元の告知には、ほかの脆弱性も載っていることがあります。
- CVE-2026-127080 重大 9.9
- CVE-2026-127073 重大 9.9
- CVE-2026-127079 高 9.1
急ぎ度: 早めに
CVSS v3が9.9の脆弱性2件を含み、修正版の2.7.0が出ていて、うち1件は公開資料も出ているため、早めの更新を勧めます。
関係があるか
BuildPiperで自社のKubernetesクラスターにデプロイしている組織が対象です。利用者にdeployやprojectの権限を広く配っている環境や、パスワード再設定の画面が外部から届く環境では、とくに影響が大きくなります。
| 製品 | 影響を受ける版 | 修正版 |
|---|---|---|
| OpsTree Solutions BuildPiper | 2.7.0より前のすべての版 | 2.7.0 |
確かめ方
- 1BuildPiperの管理画面や導入時の記録で、稼働中の版が2.7.0未満かどうかを確認します。
- 2deployやprojectの権限を持つ利用者と、そのアカウントの管理者を洗い出します。
- 3パスワード再設定の画面が社外のネットワークから到達できるかを、ネットワーク担当者に確認します。
何が起きたか
BuildPiperの2.7.0より前の版には、Kubernetesへのデプロイを管理する機能で、権限の確認や設定内容の制限が足りない脆弱性が3件あります。2件はワーカーノードやクラスター全体の管理権限が奪われるおそれがあり、残る1件はパスワード再設定の仕組みからアカウントを乗っ取られるおそれがあります。
- CVE-2026-127080: Define HostPath Volumeの設定で、ワーカーノードのルートファイルシステムを読み書き可能な状態でマウントでき、コンテナの分離が破られます(CVSS v3は9.9)
- CVE-2026-127073: Additional Manifest機能で、サービスアカウントをcluster-adminに結びつけるClusterRoleBindingを配備でき、全ワークロードとシークレットを操作されます(CVSS v3は9.9)
- CVE-2026-127079: パスワード再設定のOTP検証に試行回数の制限がなく、6桁のOTPを総当たりされてアカウントを乗っ取られます(CVSS v3は7.4)
CVE-2026-127080には、悪用の手順を示すとみられる資料が公開されています。分類は、CVE-2026-127080とCVE-2026-127073がCWE-269(不適切な権限管理)、CVE-2026-127079がCWE-307(認証試行回数の制限不備)です。
攻撃の流れ
-
1
利用者として入る
BuildPiperのdeployまたはprojectの権限を持つ利用者として操作できる状態になる。
-
2
制限のない設定を送る
hostPathのマウント設定や、Additional Manifestの設定が、許可リストやポリシーの確認なしに通る。
-
3
パイプラインが適用
BuildPiperのパイプラインが、その設定をクラスター全体の資格情報でKubernetesに適用する。
-
4
ノード・クラスター掌握
ノードのファイルシステムや、全ワークロードとシークレットを操作できるようになる。
どう悪用されるか
CVE-2026-127080は、deployの権限を持つ認証済みの利用者が、ネットワーク越しに悪用できます。利用者の操作は要りません。CVE-2026-127073は、projectの権限を持つ認証済みの利用者が対象です。どちらも、BuildPiperの利用者として入れることが前提になります。
CVE-2026-127079だけは、ログインが要りません。パスワード再設定を開始できる相手なら、OTPを総当たりで試せます。
悪用されると、ノードのルートファイルシステムが読み書きされ、クラスター全体の管理権限が奪われ、全ワークロードとシークレットが操作されるおそれがあります。OTPの件では、対象アカウントが乗っ取られます。筆者は、OTPで奪ったアカウントがdeployやprojectの権限を持っていれば、ほかの2件の入口になりうると見ています。
今すぐやること
-
1
BuildPiperを2.7.0へ更新する
3件とも2.7.0で修正されています。更新手順や作業時間は、BuildPiperの提供元の案内で確認し、メンテナンス枠を確保して進めます。
-
2
cluster-adminへの不審な結びつけを調べる
身に覚えのないClusterRoleBindingや、cluster-adminに結ばれたサービスアカウントがないかを確認します。見つけたら作成の経緯をたどります。
kubectl get clusterrolebindings -o wide -
3
hostPathのルートマウントを確認する
BuildPiper経由のデプロイ履歴と、稼働中のワークロードのボリューム設定を見て、ホストのルートディレクトリをマウントしているものがないかを調べます。
-
4
パスワード再設定の履歴を点検する
身に覚えのないパスワード再設定や、短時間に集中した再設定の試行がないかをログで確認します。あれば、そのアカウントの操作履歴も追います。
-
5
deployとprojectの権限を見直す
使っていないアカウントを無効にし、権限を持つ利用者を必要な人に絞ります。更新後も、この見直しは続けます。
すぐ更新できないとき
更新までのつなぎとして、次の対策が考えられます。いずれもBuildPiperの提供元が示した回避策ではなく、更新の代わりにもなりません。
- deployとprojectの権限を持つ利用者を一時的に絞る
- BuildPiperのログインとパスワード再設定の画面に届くネットワークを、社内や許可した範囲に限る
- Kubernetes側でPod Security Admissionのbaseline以上を有効にして、hostPathボリュームを拒否する
- ClusterRoleBindingの作成を、管理者以外が行えないよう制限する
背景
BuildPiperは、CI/CD、環境管理、リリースの配備、GitOpsをひとつの画面でまとめて扱うDevSecOps向けのプラットフォームです。複数のKubernetesクラスターへ配備するため、パイプラインはクラスター全体にまたがる強い資格情報を持ちます。この資格情報が使われる経路で入力の制限が甘いと、BuildPiperの利用者の権限が、そのままクラスターの管理権限に近づきます。今回の3件のうち2件は、この構造がもとになっています。
hostPathは、ノード上のディレクトリをコンテナにマウントするKubernetesの機能です。ルートを指定されればコンテナの分離が成り立たなくなるため、Pod Security Standardsのbaselineでも禁じられています。OTPの件は、6桁なら組み合わせが100万通りしかなく、試行回数に上限がなければ総当たりが現実的になるという、古くから知られた弱点です。
よくある質問
Q.BuildPiperを使うのが社内の利用者だけでも、急ぐ必要はありますか。
まだ分かっていないこと
- VulnCheckの勧告には、実際の攻撃で悪用されたという記載がありません。
- 勧告には、更新以外の回避策の記載がありません。
この記事は、取得元の公開情報をもとに、人が監修しながらAIを活用して執筆しています。執筆と監修は佐々木 航が担い、公開したあとも人が内容を確認しています。誤りに気づいたときは直し、記事の末尾に訂正の行を残します。対応を決める前に、下の原文と参照先も確認してください。
影響パッケージ
| パッケージ | 影響を受ける版 → 修正版 | |
|---|---|---|
| OpsTree SolutionsBuildPiper |
2.7.0 未満→ 2.7.0 |
2.7.0 |
原文の説明 取得元が公開している説明をそのまま載せています (多くは英語)。
OpsTree BuildPiper before 2.7.0 contains an improper authorization vulnerability that allows authenticated deploy users to define arbitrary Kubernetes hostPath volumes without allow-list or policy checks. Attackers can set the host path to / in the Define HostPath Volume configuration to mount the worker node root filesystem read-write, breaking container isolation and enabling node and cluster compromise.
出典: CVE.org (CVE Program・cvelistV5) NVD