OWN NEWS GATHER
← 戻る
The Hacker News

AIゲートウェイ「Bifrost」に認証なしでコマンド実行が可能な脆弱性、APIキー流出の恐れ

要点

  • オープンソースのAIゲートウェイ「Bifrost」において、認証を経ずにサーバー上で任意のコマンドを実行できる重大な脆弱性(CVE-2026-90898)が報告された。
  • 管理APIにリクエストを1回送信するだけで、接続されている複数のLLMプロバイダのAPIキーなどの認証情報が窃取される恐れがある。
  • 修正版となる「transports/v2.1.0」が公開されたほか、認証の有効化やネットワークの制限による回避策が提示されている。
  • 開発元のMaximは、標準的な運用環境ではリスクが限定的であるとして、脆弱性を報告したJFrogと深刻度評価の見直しを協議している。

オープンソースのAIゲートウェイ「Bifrost」において、遠隔の第三者が認証なしでサーバー上で任意のコマンドを実行できる脆弱性が判明した。セキュリティ企業JFrogの研究者であるYuval Moravchick氏が発見したもので、共通脆弱性識別子として「CVE-2026-90898」(CVSSスコア:9.8)が割り当てられている。影響を受けるバージョンに対しては、修正版となる「transports/v2.1.0」が提供されている。

MCPクライアント登録の不備によるコマンド実行の仕組み

Bifrostは、20以上のLLM(大規模言語モデル)プロバイダへのリクエストを一元管理・ルーティングするオープンソースのAIゲートウェイである。

今回報告されたCVE-2026-90898は、Bifrostの管理APIにおいて認証が無効になっている場合に影響を及ぼす。攻撃者は管理用エンドポイントである「/api/mcp/client」に対して認証なしで1回のPOSTリクエストを送信し、stdio形式のMCP(Model Context Protocol:AIモデルと外部ツールを接続するためのプロトコル)クライアントを登録できる。

この際、BifrostはMCPの通信ハンドシェイクを行う前に、指定されたコマンドをゲートウェイプロセスの実行ユーザー権限ですぐに実行してしまう設計となっていた。公式Dockerイメージの場合、このコマンドは「appuser」権限で実行される。Bifrost内には連携している各LLMプロバイダのAPIキーが保持されているため、プロセス上でコマンドを実行されると、それらの重要な認証情報が攻撃者に窃取される危険があるという。

露出条件と提供されている対策

本脆弱性の影響を受ける範囲は、管理APIの認証が無効化されている「2.1.0」未満のすべてのBifrost HTTPトランスポートである。

スタンドアロンのバイナリ版では、管理APIがデフォルトでローカルホスト(localhost)にバインドされているため、影響はローカル環境内に留まりやすい。一方で公式Dockerイメージは「0.0.0.0」にバインドされており、ポートを外部に公開している場合はコンテナの外部から管理APIへのアクセスが可能となる。

開発元は脆弱性を修正した「transports/v2.1.0」をリリースしており、このバージョンでは未認証の呼び出し元がstdio形式のMCPクライアントを登録しようとした際に「403 Forbidden」を返すよう変更された。

直ちにアップデートを適用できない場合の回避策として、設定項目「governance.auth_config.is_enabled」を「true」に設定して強力な認証情報を設定することや、管理APIのリスナーを信頼できないネットワークに露出させない運用が推奨されている。またJFrogは、認証が無効な状態で管理APIを公開していたインスタンスについては侵害されたものとみなし、仮想キーおよびプロバイダのAPIキーを再発行(ローテーション)することを推奨している。

なお、中間バージョンである「transports/v2.0.0」は先行する別の脆弱性のみを修正したものであり、本MCPの脆弱性には対応していない。また「1.6.0」から「1.6.11」までの1.6.x系列にはいずれの修正も含まれていないという。

開発元によるリスク評価と深刻度をめぐる見解

Bifrostの開発元であるMaximの共同創業者兼CTO、Akshay Deo氏はメディアへの声明において、実質的なリスクはCritical(緊急)という評価ほど高くないと説明している。

同氏によると、脆弱性を悪用するには管理インターフェースが信頼できないネットワークから到達可能であり、かつ管理者が認証を未設定のままにしているという条件が重なる必要がある。同社が公式ドキュメントで案内している標準的なデプロイ構成ではゲートウェイをプライベートネットワーク内に配置することになっているため、同社はこの問題を「低深刻度(Low-severity)」と位置付けており、CVEを採番したJFrog側と深刻度評価の改訂に向けた協議を行っていると述べている。

併せて判明したプラグイン読み込み時の脆弱性

JFrogの研究チーム(Or Peles氏)はこれに先立ち、2026年9月6日にも関連する脆弱性「CVE-2026-86242」(CVSSスコア:8.1)を公開していた。

こちらは、未認証の攻撃者がHTTPのURLをパスに指定してカスタムプラグインを登録できるというものである。Bifrostは指定されたファイルをダウンロードして一時的な共有オブジェクト(.soファイル)として保存し、Go言語の「plugin.Open」関数を用いてロードする。

カスタムGoプラグインを必要とする動的リンクビルド環境では、このプラグインが読み込まれてコードがゲートウェイプロセスの権限で実行される。一方、公式Dockerイメージを含む静的リンクビルド環境では「plugin.Open」が失敗するため、コード実行には至らずSSRF(Server-Side Request Forgery:サーバーを踏み台にして内部へ不正リクエストを送る攻撃)にとどまる。この問題は「transports/v2.0.0」で修正されている。

管理APIの設計とAIゲートウェイにおけるセキュリティ背景

これら2件の脆弱性は、いずれもBifrostの管理APIがデフォルトで認証無効の状態で提供されていた点に共通の根本原因がある。同プロジェクトでは8月下旬にも無関係なSSRF脆弱性(CVE-2026-55245)が修正されており、1カ月足らずの間に3件のセキュリティ修正が行われた形となる。

AI関連ツールにおけるMCPのstdioトランスポートを巡るリスクとしては、2026年4月にもAnthropicの公式SDKに影響する設計上の問題が報告されていた。また別のAIゲートウェイである「LiteLLM」でも類似のコマンドインジェクション脆弱性(CVE-2026-42271)が悪用され、2026年6月に米CISAの「悪用が確認された脆弱性カタログ(KEV)」に追加されている。なお、今回報告されたBifrostの2件の脆弱性は、記事公開時点でKEVには登録されていない。

元URL