本文へ移動

AI Buildersのための最新のニュース、知見、事例を毎日お届け

運営会社
企業のセキュリティ対策GPUStack

GPUStack、SAMLの認証を素通りされる脆弱性 2.2.2以上へ上げる

GPUの束でAIのモデルを動かすツール「GPUStack」の開発チームは9月30日(日本時間)、ログインの確認を素通りされ得る脆弱性「CVE-2026-102894」を公表した。0.7.1から2.2.1が当たり、SAMLを使っていなくても影響する。2.2.2以上へ上げる必要がある。

記事の内容を自社でどう進めるか、内容が固まっていない段階でも相談できます。仕事の相談

毎週 1 回、その週の記事から 5 本と実践の 1 本を選んでメールで届けます。ニュースレターを購読する(無料)

GPUStackの管理画面で、モデルの一覧の行に動作中の表示が出て、赤い矢印が指している
画像: GPUStack

GPUの束でAIのモデルを動かすツール「GPUStack」の開発チームは9月30日(日本時間)、ログインの確認を素通りされ得る脆弱性の公告を出した。GitHubの脆弱性データベースは11月11日(日本時間)にこの公告を確認して載せた。当たるのは0.7.1から2.2.1までで、SAMLのログインを設定していない環境も含む。2.2.2より古ければ、すぐ上げる必要がある。

0.7.1から2.2.1までが当たる

公告とGitHubの脆弱性データベースの記録によると、影響と修正版は次のとおりだ。

  • 対象: Pythonのパッケージ「gpustack」の0.7.1以上、2.2.2未満
  • 修正版: 2.2.2
  • CVE番号: CVE-2026-102894(NVDの記録は11月5日に公開)
  • 深刻度: CVSS 3.1で9.1(GitHubの評価)。認証も利用者の操作も要らない
  • 弱点の種類: CWE-294(認証の捕獲と再送)、CWE-347(署名の確認の不備)
  • 中身: SAMLのログインの受け口が、届いた応答の署名、発行元、宛先、有効期限を確かめないまま、その応答が名乗る利用者のログインの状態を発行していた

公告によると、受け口は、SAMLを設定したかどうかに関わらず動いていた。そのため、受け口に通信が届く人なら、資格情報なしに既存の利用者として入れる。管理者として入られると、配備とその上で管理する基盤の全体を握られる。存在しない名前なら、管理者でない利用者が新たに作られる。応答の識別子を使い済みにしないので、一度盗まれた正しい応答は何度でも使い回せる。

まず動いている版を確かめる

公式の手順では、2系はDockerのイメージ「gpustack/gpustack」で動かすのが基本だ。Dockerで動かしているなら、Dockerの一般的なコマンド「docker ps」で、動いているコンテナのイメージのタグを見る。ただし公式の手順はタグを付けないか「latest」で動かすので、その場合はタグから版が分からない。11月11日の時点で、公式の文書に版の確かめ方は見当たらなかった。分からなければ、2.2.2以上の版を明示したタグで入れ直すのが確実だ。pipで入れた環境なら、Pythonの一般的なコマンド「pip show gpustack」で版が出る。Helmで入れたなら、Helmの一般的なコマンド「helm list」でチャートの版を見る。チャートの版はGPUStackの版と同じだ。

版が0.7.1以上で2.2.2より前なら当たる。サーバーの前に置いた中継のサーバーで「/auth/saml/callback」への通信が届くかどうかも、あわせて確かめたい。公告が挙げる条件は、この受け口に通信が届くことだけだ。管理画面を社内の網に置いていても、同じ網の端末から届くなら当たる。

2.2.2以上へ上げ、窓口を塞ぐ

公告は、2.2.2で直したと書く。応答の署名などを確かめ、合わない応答は拒むようにした。SAMLとOIDCのログインの経路は、その方式を使う設定にした時だけ動くようになった。

上げ方は、Dockerでの上げ方の文書にある。この手順は2.0以降が対象で、それより前の版は移行の文書に従う。新しい版のイメージを取り、同じ引数と保存先で動かし直す。組み込みのデータベースを使うなら、先にサーバーを止めて「/var/lib/gpustack/postgresql/data」を退避する。外部のデータベースはその手順で退避する。そのうえで、サーバー、ワーカーの順に上げる。試験版(rc)は使わないよう求めている。11月9日に出た2.3.1rc1も試験版だ。Helmでの上げ方の文書は、Helmでの導入は2.2.0からだと断っている。最新の安定版は10月23日の2.3.0だ。

公告は、設定で避ける方法は無いと明言する。SAMLを切っても、当たる版では受け口が動くからだ。上げるまでは、中継のサーバーかKubernetesの入口で、「/auth/saml/callback」への通信を止めるよう求めている。2.2.2の公開の記録は、同じ版でクラスターなどを扱う窓口の権限の確認の漏れ(2.2.0から2.2.1が対象)も直したとしている。

別の脆弱性は悪用を確認済み

CVE-2026-102894そのものは、11月11日の時点で、米CISAの悪用を確認した脆弱性の一覧(KEV)に載っていない。悪用の報告も公告には無い。

一方、2.2.0で直した別の脆弱性「CVE-2026-102895」は悪用されている。その公告によると、同じホストの中継のサーバーを通った通信や、偽の送信元の情報を、手元からの通信として信じ、認証なしで管理者の権限を与えていた。CVSSは9.8で、2.1.1の環境への悪用を確認したと書く。KEVは11月9日(米国時間)にこれを加え、対応の期限を11月12日(米国時間)とした。KEVは、侵害の有無を調べる手順にも従うよう求め、ランサムウェアの攻撃に使われたかどうかは「不明」としている。0.7.1以上で2.2.0より古い環境は、両方に当たる。

SAGUSでは当たらなかった

SAGUSは、開発に使う2台の端末と本番のサイトについて、GPUStackを使っていないかを確かめた。端末では、「pip3 show gpustack」でパッケージが無いこと、gpustackのコマンドが無いこと、Dockerが無いか、あっても「docker images」にGPUStackのイメージが無いこと、開発の作業場所を文字列で検索して設定が無いことを見た。本番のサイトもGPUStackを使っておらず、当たらなかった。

編集部の見方

編集部は、GPUStackを動かす人は、SAMLを使っていないから無関係だと考えず、今日中に版を確かめるべきだと考える。設定で避ける方法が無く、受け口に通信が届けば、資格情報なしに管理者を含む既存の利用者として入れ得るからだ。同じツールの別の脆弱性は既に悪用されている。2.2.2以上に上げた後も、知らない利用者や管理者の鍵が増えていないかを確かめたい。

出典

に確認(日本時間)

  1. ログインの確認を素通りされ得る脆弱性の公告(github.com)
  2. GitHubの脆弱性データベースの記録(github.com)
  3. NVDの記録(nvd.nist.gov)
  4. Dockerでの上げ方の文書(github.com)
  5. 移行の文書(github.com)
  6. Helmでの上げ方の文書(github.com)
  7. 2.2.2の公開の記録(github.com)
  8. その公告(github.com)
  9. KEV(cisa.gov)

この記事をシェア

この記事は役に立ちましたか