AIに渡す前の「穴埋め」が破られた — GitLab AI Gatewayのコマンド実行脆弱性(CVE-2026-90970)

この記事は時点のニュースです。現在の提供状況とは異なる場合があります。誤りの訂正は随時行います。


プロンプトテンプレートの穴埋めで起きたこと 通常のカスタムフロー フローYAML prompts の穴埋め欄 テンプレート組み立て サンドボックス内で 値を埋めるだけ LLM 生成された文章を送信 想定どおりなら、穴埋めの結果は文章のままサンドボックスに収まる CVE-2026-90970(CVSS 9.9)での悪用 細工した flow configuration プロンプトテンプレートの 処理をすり抜ける サンドボックス脱出 AI Gateway ホスト上で 任意コマンド実行 前提は Duo Agent Platform にアクセスできる認証済みユーザー 対象は自分でホストした AI Gateway(19.2.4 / 19.3.2 / 19.4.1 で修正)
カスタムフローの穴埋め処理を悪用され、AI Gatewayのホストでコマンドが実行された
ひよこ ひよこ
ペンギン先生、「GitLabのAI Gatewayに重大な脆弱性」ってニュースを見たんだけど、AI Gatewayって何なの?
ペンギン先生 ペンギン先生
GitLabのAI機能「GitLab Duo」とLLMの間を仲介するコンポーネントだよ。公式ドキュメントでは、自分でAI Gatewayを立てれば、コード入力・プロンプト・応答といった推論データを自社のネットワーク内にとどめて、外部APIへの通信を避けられると説明されているんだ。
ひよこ ひよこ
じゃあ、安全のために自分で立てた人のほうが今回は危なかったってこと?
ペンギン先生 ペンギン先生
今回の脆弱性についてはそうなんだ。GitLabは2026年10月2日に AI Gateway 19.2.4・19.3.2・19.4.1 を公開して CVE-2026-90970 を修正したけれど、公式のパッチリリースでは、対応が必要なのは自分でAI Gatewayを運用している利用者だけで、GitLab.com・GitLab Dedicated・GitLab提供のAI Gatewayを使うSelf-Managedの利用者は「保護済みで対応は不要」と書かれているんだよ。
ひよこ ひよこ
中身はどんな脆弱性だったの?
ペンギン先生 ペンギン先生
公式の説明は「Duo Agent Platformにアクセスできる認証済みのユーザーが、細工したflow configurationでプロンプトテンプレートのサンドボックスを抜け出し、任意のコマンドを実行できる」というものだよ。CVSSは9.9で、報告したのはHackerOneのinvisiblemeerkatという研究者なんだ。
ひよこ ひよこ
プロンプトテンプレート……? AIに変なことを言わせるのとは違うの?
ペンギン先生 ペンギン先生
そこが今回の面白いところだね。Duo Agent PlatformのカスタムフローはYAMLで書く仕組みで、公式ドキュメントによるとcomponents・prompts・routers・toolsetsを指定して組み立てる。promptsはテンプレートだから、実行時に値を埋め込んで文章を作る工程がある。つまりAIに届く前に、サーバ側で文字列を組み立てる処理が一段あるんだよ。
ひよこ ひよこ
その「穴埋め」のところから、サーバの中身をいじられちゃったんだね。
ペンギン先生 ペンギン先生
そういう筋だね。細工した設定の中身そのものは公開されていないけれど、テンプレートの穴埋め欄に式を書き込んでエンジン側に処理させる手口は、サーバーサイドテンプレートインジェクションとしてWebの世界で昔から知られているものなんだ。プロンプトインジェクションがモデルの判断を狂わせる攻撃なのに対して、公式の説明にあるこの脱出はモデルに届く前の組み立て処理の側で起きている。だからモデルを賢くしても防げない種類だよ。
ひよこ ひよこ
でもCVSSが9.9ってすごく高いよね。ログインが必要なのに、どうしてそんなに高くなるのかな?
ペンギン先生 ペンギン先生
ベクタが CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H で、権限はPR:L(低い権限で足りる)だけどS:C(スコープ変更)が入っているからだよ。AI Gatewayは複数の利用者のDuo機能が通る共有の入口だから、そのホストを取られると自分のアカウントの範囲を越えて影響が及ぶ、という評価なんだ。
ひよこ ひよこ
うちに関係あるかどうかは、どう調べたらいいの?
ペンギン先生 ペンギン先生
まず自分でAI Gatewayを運用しているかを確認してね。影響するのは AI Gateway 18.1.6以降で19.2.4未満、19.3系で19.3.2未満、19.4系で19.4.1未満。該当したら修正版へ上げるだけだよ。GitLabはリリース記事の公開前に自己ホストの顧客へ個別に連絡したと書いているけど、連絡の有無に関わらずバージョンは自分で見たほうが確実だね。
ひよこ ひよこ
攻撃はもう起きているの?
ペンギン先生 ペンギン先生
GitLabのパッチリリースの本文には、実環境で悪用されたという記載はないよ。ただ「報告がまだない」は「安全」とは別だし、前提の「認証済み」も安心材料とは限らないんだ。公式ドキュメントではカスタムフローの作成にプロジェクトのMaintainerかOwnerロールが必要とされているから、外部の誰でもではないけれど、その権限を持つ人のアカウントが乗っ取られれば前提は満たされる。AIの設定ファイルも、コードと同じようにレビューと権限管理の対象として扱うのが近道だよ。

出典・確認した情報

  • GitLab AI Gateway Critical Patch Release: 19.2.4, 19.3.2, and 19.4.1(GitLab Docs 公式パッチリリース)

    発表日: 2026-10-02 / 確認日: 2026-10-06

    • GitLab AI Gateway 19.2.4 / 19.3.2 / 19.4.1 がクリティカルなセキュリティ修正を含むリリースとして公開されている
    • 脆弱性は CVE-2026-90970。本文の説明は「an authenticated user with Duo Agent Platform access to escape the prompt template sandbox via a specially crafted flow configuration, leading to arbitrary command execution」
    • CVSSは9.9、ベクタは CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H。PR:L(低い権限が必要)かつ S:C(スコープ変更)
    • 影響バージョンは AI Gateway 18.1.6以降で19.2.4未満、19.3系で19.3.2未満、19.4系で19.4.1未満
    • 対応が必要なのは GitLab Self-Hosted AI Gateway を運用している利用者。GitLab.com・GitLab Dedicated・GitLab提供のAI Gatewayを使うSelf-Managedインスタンスの利用者は「protected and do not need to take action」と記載
    • 報告者は HackerOne の invisiblemeerkat。この資料本文に実環境での悪用(in-the-wild exploitation)の記載はない(2026-10-06時点で本文を確認)
    • アップグレード手順は GitLab Self-Hosted AI Gateway のインストールドキュメントを参照するよう案内している
    • 公開前の連絡について「We have conducted targeted outreach to Self-Hosted AI Gateway customers prior to this release post with this guidance.」と記載
  • Custom flows(GitLab Docs / Duo Agent Platform)

    発表日: 2026-10-06 / 確認日: 2026-10-06

    • カスタムフローはYAMLで定義するワークフローで、components(エージェントと手順)・prompts(モデルの振る舞いと指示)・routers(コンポーネント間の遷移)・toolsets(使えるGitLab APIツール)を指定する
    • カスタムフローの作成には「You must have the Maintainer or Owner role for the project」、実行には Developer / Maintainer / Owner ロールが必要と記載
    • 提供プランは Free・Premium・Ultimate で、GitLab.com・Self-Managed・Dedicated が対象
    • フロー定義はプロジェクト内のYAMLファイルとして管理される
  • GitLab Duo Self-Hosted(GitLab Docs / AI Gatewayの役割)

    発表日: 2026-10-06 / 確認日: 2026-10-06

    • AI GatewayはGitLab Duoの機能とLLMの間を仲介するコンポーネントと説明されている
    • 完全に自社でホストする構成では、LLM提供基盤(vLLMやAWS Bedrockなど)・自前のAI Gateway・それを使うよう設定したGitLabインスタンスの3要素が必要
    • 自社ホスト構成の利点として、コード入力・プロンプト・応答といった推論データを自社ネットワーク内にとどめ、外部APIへの通信を避けられる点を挙げている