脆弱性・CVE速報深刻度: 高

Kubeflow Pipelines の実行ログ取得 API で認可の確認がなく、他の実行のログを読める不具合(CVE-2026-118759): 2.18.0 で修正

目次(5)

CVE-2026-118759

機械学習ワークフロー基盤 Kubeflow Pipelines の API サーバーで、実行(run)のログを返す API が呼び出し元の権限を確認せずにログを返していた不具合(CVE-2026-118759、GHSA-wg5q-x4j9-qm54)が公開されました。GitHub の深刻度は High、GitHub 提供の CVSS v3.1 は 7.5(機密性のみ高)です。修正版は 2.18.0 です。影響を受けるのは、2.18.0 より前の API サーバーに到達でき、対象の実行 ID とノード(Pod)の識別子を知っている呼び出し元です(下の「影響を受ける条件」を参照)。

何が起きるか

  • 対象は GET /apis/v1alpha1/runs/{run_id}/nodes/{node_id}/log です。勧告によると、このハンドラは選ばれた実行に対して呼び出し元の権限を確認しないままログを取得します。
  • 実行中のログでは、呼び出し元が指定したノード ID が、その Pod が当該の実行に属するかを確認されないまま Pod 名として使われます。既知の実行 ID を「名前空間の選択」に使い、無関係な Pod のメインコンテナのログを読める可能性があると勧告は説明しています。
  • 勧告は、ログには機微なワークロードのデータや認証情報が含まれうるとしています。
  • 同じ系統の成果物取得 API には権限確認があり、このログ API にだけなかったと、修正の説明は述べています。
  • CISA の整理(SSVC)は、悪用 none(確認なし)、自動化 yes、技術的影響 partial です(NVD 経由で確認)。CISA の KEV には載っていません(10/30 版の一覧で確認)。

影響を受ける条件

項目内容
対象Kubeflow Pipelines の API サーバー。2.18.0 より前(NVD の記載)。Go モジュールとしては 0.0.0-20260904182349-be4723e33727 より前(GitHub の構造化データ)
前提API サーバーに到達できること。勧告は「ハンドラ自体は認証をしない。外部の認証ゲートやネットワークポリシーで到達を制限できる」としている
必要な情報対象の実行 ID と、適切な Pod またはノードの識別子
評価攻撃元 ネットワーク(AV:N)・複雑さ 低(AC:L)・権限 不要(PR:N)・ユーザー操作 不要(UI:N)・機密性 高のみ(GitHub 提供)
修正版2.18.0(2026-10-28 UTC リリース)
弱点の分類CWE-200(情報の露出)、CWE-862(認可の欠如)

修正の説明(プルリクエスト #13684)には「マルチユーザーモードでは、認証済みの任意のユーザーが、権限のない名前空間の実行 ID を指定してログを読める」とあります。勧告の「ハンドラ自体は認証しない」という書き方との関係(認証ゲートの有無によって到達条件が変わる)は、本記事では確認できていません。

修正の内容

  • 修正コミット be4723e(2026-09-04 UTC、プルリクエスト #13684)は、ログ取得の前に実行へのアクセス権を確認する処理を加えています。
  • 最終的な形では、権限確認に専用の readLog という動詞を使い、マルチユーザー構成の view・edit のクラスターロールにその権限を加えています(変更ファイルに manifests/kustomize/base/installs/multi-user/view-edit-cluster-roles.yaml が含まれる)。
  • ログを返す前に、対象の Pod が当該の実行を示すラベル(pipeline/runid)を持つかを確かめ、実行を名前空間の選択に使う読み出しを防ぐと、コミットの説明にあります。
  • 2.18.0 のタグはこのコミットの先にあります(Git の比較で、タグ側が 163 先、遅れ 0)。

対応

  1. Kubeflow Pipelines を 2.18.0 以上に更新します(最新リリースも 2.18.0)。
  2. 更新後、独自のクラスターロールを作っている構成では、readLog の権限が必要になる可能性があります。これはコミットの内容に基づく本記事の推定で、公式の移行手順は確認できていません。
  3. すぐ更新できない場合は、API サーバーへの到達を認証ゲートやネットワークポリシーで絞る方法が考えられます(勧告も到達の制限に触れていますが、回避策として明示されたものではなく、本記事の推定です)。
  4. 過去にログを読まれた可能性が気になる場合は、ログに含まれうる認証情報の見直しを検討します(本記事の推定)。

未確認の点

  • 悪用の報告は確認できていません。KEV にも載っていません。
  • NVD は自身の評価をしていません(Awaiting Analysis)。CVSS は GitHub 提供の値です。
  • 実際の環境での再現は確認していません。勧告とコミットの記載に基づきます。
  • 認証ゲートがない構成と、マルチユーザーモードの構成のそれぞれで、どこまで読めるかは確認していません。
  • 2.18.0 より前の各版(2.x の古い版を含む)で同じ動作かは確認していません。Go モジュールの別範囲(1.7.0-alpha.3)も勧告に載っていますが、修正版の記載はなく、詳細は確認できていません。
  • 修正コミット(9/4)→リリース 2.18.0(10/28)→NVD 公開(10/29)→GitHub 勧告(10/30)の順です。コミットから公開までの経緯は確認できていません。
  • 日付は、タグ・リリースは Git と GitHub の記録、公開日は GitHub と NVD の記載に基づきます。

この記事について

出典

この記事を共有